Come scoprire quanta risorsa I / O un'attività, una sessione, una sessione, una richiesta o una transazione sta utilizzando?
-
29-09-2020 - |
Domanda
Come scoprire quanto risorse I / O Un compito, una sessione, una richiesta o una transazione utilizza attualmente?
per attività intendo il DMV chiamato dmv sys.dm_os_tasks . per sessione intendo il dmv sys.dm_exec_sessions
A volte una sessione ha una richiesta, su richiesta intendo il DMV sys.dm_exec_requests o una sessione potrebbe avere una transazione invece - sys. dm_tran_database_Transations
Come posso collegare queste cose con l'utilizzo di I / O ?
Ho dato un'occhiata al DMV chiamato Dmv sys.dm_os_tasks .
sys.dm_os_tasks - non mostrando in attesa_io_byte_count
Questo è un esempio dei risultati della mia query mentre stavo cercando di monitorare alcuni attese CXPackets.
Pending_io_count sembra essere fine, ma in attesa_io_by_conti sono sempre zero.
Cosa potrebbe essere un'alternativa? Voglio misurare l'utilizzo dell'I / O di ogni processo parallelo.
In effetti potrebbe essere solo l'utilizzo di I / O di ogni sessione o richiesta.
Anche sessioni senza richiesta a volte sono buone da vedere, perché potrebbero bloccare altri processi.
Soluzione
Se stai cercando l'I / O fisico effettivo per una query, è necessario cercare nello Showplan XML per l'elemento 'AtomefyphySicalReads':
schemas.microsoft.com/sqlserver/2004/07/showplan / P >.
Tuttavia, quelle letture fisiche probabilmente si verificano la prima volta che il piano è memorizzato nella cache.Le corse successive sono più propensi a tirare le pagine dalla memoria, non dal disco.
HTH