Kann mir jemand helfen, die unten angegebenen Details für eine lange laufende Abfrage zu finden. ProcessID, Prozessname, Datenbank, Host, Benutzer, Prozessanmeldezeit, Abfragestartzeit und Abfragedauer.
Ich bin auf der Suche nach einer Abfrage oder einem SP, der mir diese Daten liefert.
Wie kommentiert, ist das beste Tool sp_whoIsActive von Adam Machanic. Es kann auf verschiedene Arten verwendet werden, um zu sehen, was in dem Moment läuft, in dem Sie das Skript starten, oder Sie können es in Schleifen laufen lassen, um eine bestimmte Aktion zu überwachen, z. B. langsame Abfragen.
Um es in einer Schleife laufen zu lassen, sehen Sie hier nach: Wie man die Aktivität mit sp_whoisactive in einer Schleife protokolliert Um langsame Abfragen zu erkennen: How to Use sp_WhoIsActive to Find Slow SQL Server Queries
Sie können DMV's direkt verwenden, um Ihre langsamsten Abfragen zu ermitteln und von dort aus zu handeln. Prüfen Sie Glenn Berry's diagnostische Abfragen.
Und schließlich können Sie diese Abfrage verwenden, um die zeitaufwändigsten Abfragen zu finden. Sie können mit dm_exec_query_stats herumspielen, um weitere Daten hinzuzufügen oder mit anderen Abfragen zu verbinden, um mehr Informationen zu erhalten. Beachten Sie, dass dmv's bei jedem Neustart des Servers weggespült und aktualisiert wird.
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;
EDIT
Eine neue Option ist bereits seit einiger Zeit verfügbar, First Reponder Kit. Es handelt sich dabei um eine Reihe von Skripten, die unter der MIT-Lizenz vom BrentOzar-Team frei zur Verfügung gestellt werden und die bei verschiedenen Aufgaben helfen, einschließlich der vom OP gestellten. Hauptsächlich sp_BlitzFirst und sp_BlitzWho Skripte für diesen Fall.
Ich würde sehr empfehlen sp_whoisactive. Es ist ein SP eines Drittanbieters, aber es kann Ihnen alles sagen, was Sie oben aufgelistet haben, und noch viel mehr als das. Es ist ein unglaubliches Werkzeug, das Sie in Ihrem Arsenal haben sollten.