Последние выполненные запросы для конкретной базы данных
Я знаю, как получить последние выполненные запросы, используя следующий SQL в SSMS -
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
Но я хочу найти их для конкретной базы данных. Я не хочу использовать SQL Profiler, если мне это не нужно. Плюс я не думаю, что SQL Profiler позволит мне просматривать запросы, которые уже выполнялись без включения профилирования. Мне нужно сделать это из SSMS.
Ответы
Ответ 1
Это работает для меня, чтобы найти запросы в любой базе данных в экземпляре. Я - системный администратор экземпляра (проверьте свои привилегии):
SELECT deqs.last_execution_time AS [Time], dest.text AS [Query], dest.*
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
WHERE dest.dbid = DB_ID('msdb')
ORDER BY deqs.last_execution_time DESC
Это тот же ответ, что и Аарон Бертран, но он не был помещен в ответ.