特定数据库的最后执行的查询

问题描述 投票:0回答:2

我知道如何在 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 Profiler。另外,我认为 SQL Profiler 不允许我查看在未打开分析的情况下已经运行的查询。我需要从 SSMS 执行此操作。

sql-server sql-server-2012
2个回答
111
投票

这适用于我查找实例中任何数据库的查询。 我是实例的系统管理员(检查您的权限):

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 提供的答案相同,但没有放在答案中。


19
投票
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
© www.soinside.com 2019 - 2024. All rights reserved.