Come trovo una query di lunga durata con ID processo, nome processo, ora di accesso, utente, ora di inizio e durata?


23

Qualcuno può aiutarmi a trovare i dettagli indicati di seguito per una query di lunga durata. ID processo, nome processo, database, host, utente, ora di accesso al processo, ora di inizio della query e durata della query.

Sto cercando una query o un SP che mi dia questi dati.

Risposte:


38

Come commentato, il miglior strumento in circolazione è sp_whoIsActive di Adam Machanic . Può essere utilizzato in diversi modi, per vedere cosa è in esecuzione nel momento in cui si avvia lo script oppure è possibile eseguirlo in loop per monitorare alcune azioni specifiche, ad esempio query lente.

Per eseguire in un ciclo dare un'occhiata qui: Come registrare l'attività utilizzando sp_whoisactive in un ciclo Per rilevare le query lente: Come utilizzare sp_WhoIsActive per trovare query SQL Server lente

È possibile utilizzare direttamente i DMV per ottenere le query più lente e agire da lì. Controlla le domande diagnostiche di Glenn Berry .

E infine puoi utilizzare questa query per trovare la maggior parte delle query che richiedono tempo. Puoi giocare con dm_exec_query_stats per aggiungere più dati o unirti ad altri per ottenere maggiori informazioni. Tenere presente che dmv viene rimosso e aggiornato ogni volta che il server viene riavviato.

SELECT  creation_time 
        ,last_execution_time
        ,total_physical_reads
        ,total_logical_reads 
        ,total_logical_writes
        , execution_count
        , total_worker_time
        , total_elapsed_time
        , total_elapsed_time / execution_count avg_elapsed_time
        ,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
         ((CASE statement_end_offset
          WHEN -1 THEN DATALENGTH(st.text)
          ELSE qs.statement_end_offset END
            - qs.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
ORDER BY total_elapsed_time / execution_count DESC;

MODIFICARE

Una nuova opzione è già disponibile da qualche tempo, First Reponder Kit . È un insieme di script, forniti gratuitamente su licenza MIT dal team BrentOzar, che aiuteranno in vari compiti, incluso quello richiesto dall'OP. Principalmente sp_BlitzFirst e sp_BlitzChi script per questo caso.


10

Consiglio vivamente sp_whoisactive . È un SP di terze parti, ma può dirti tutto ciò che hai elencato sopra e molto di più. È uno strumento incredibile da avere nel tuo arsenale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.