Ich weiß, wie die letzten ausgeführten Abfragen erhalten Sie die folgende SQL in SSMS -Zuletzt ausgeführten Abfragen für eine bestimmte Datenbank
SELECT deqs.last_execution_time AS [Time], dest.text AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY deqs.last_execution_time DESC
Aber ich möchte, dass sie für eine bestimmte Datenbank zu finden. Ich möchte SQL Profiler nicht verwenden, wenn ich nicht muss. Außerdem glaube ich nicht, dass SQL Profiler es mir ermöglicht, Abfragen anzuzeigen, die bereits ausgeführt wurden, ohne dass die Profilerstellung aktiviert war. Ich muss dies von SSMS tun.
Es wird nicht immer gefüllt, so dass Sie möglicherweise Zeug vermissen, aber als Anfang können Sie filtern nach 'WHERE dest.dbid = DB_ID ('Ihr Datenbankname')'. Wenn Sie nachverfolgen möchten, verwenden Sie Profiler * nicht *, wenn Sie nicht möchten, dass Ihr Monitoring tatsächlich zu Leistungsproblemen beiträgt. Verwenden Sie eine serverseitige Ablaufverfolgung, erweiterte Ereignisse oder ein Tool von Drittanbietern (ich kenne einen ziemlich guten). –
während das ausgeführt wird, erhält es meine keine Zeile. Ich habe wenige andere Datenbanken. Nichts von ihnen zeigt etwas. Vielleicht ist es nicht DB_ID ('Datenbankname') .. die IDs sind anders? – Mukus
Diese Abfrage oben ist unbrauchbar zu bestimmen, was alles ausgeführt, weil ich einige der Datenbank-IDs der Datenbanken nicht einmal sehen. Ich habe 'SELECT name, datenbank_id FROM sys.databases;' – Mukus