我知道如何在SSMS中使用以下SQL获取最后执行的查询 -
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事件探查器。另外,我不认为SQL Profiler会允许我查看已经运行但未启用分析的查询。我需要从SSMS做到这一点。
答案 0 :(得分:74)
这适用于我在实例中的任何数据库上查找查询。我是实例上的sysadmin(检查你的权限):
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
这与Aaron Bertrand提供的答案相同,但答案并未得到答案。