【问题标题】:Last executed queries for a specific database对特定数据库的最后执行查询
【发布时间】:2012-11-18 06:33:46
【问题描述】:

我知道如何在 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 执行此操作。

【问题讨论】:

  • 它不会总是被填充,所以你可能会错过一些东西,但作为开始你可以过滤WHERE dest.dbid = DB_ID('your database name')。如果您想继续跟踪,请不要永远使用 Profiler,除非您希望您的监控真正导致性能问题。使用服务器端跟踪、扩展事件或 3rd 方工具(我知道一个很好的工具)。
  • 执行时,它没有得到我的任何行。我几乎没有其他数据库。他们中的任何一个都没有任何表现。也许不是 DB_ID('database name').. id 不一样?
  • 上面的查询无法用于确定所有执行的内容,因为我什至看不到数据库的某些 db id。我使用'SELECT name,database_id FROM sys.databases;'
  • @AaronBertrand 为什么不发表您的评论作为答案?您在以下答案前 6 个月回答。我会接受你的。
  • 如何使用server-side trace或extended events记录查询执行数据??能否请您简要介绍一下..

标签: sql-server sql-server-2012


【解决方案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

这与 Aaron Bertrand 提供的答案相同,但没有放在答案中。

【讨论】:

  • 这会查看过程缓存并仅显示CREATE PROCEDURE or FUNCTION 语句,这很有用,但不完整。见dba.stackexchange.com/questions/35703/…
  • 但这向我展示了没有提交值的原始 sql 字符串。有没有办法显示提供给执行查询的参数值??
  • 我是系统管理员。我从 c# sqldataadapter 执行查询。但没有结果显示?!
  • 哪个数据库用于执行查询? master、msdb、tempdb ?
  • 这适用于 SQL Server 2012 而不是 SQL Server 2008。
【解决方案2】:

以下对我来说非常有效:希望这会有所帮助

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

【讨论】:

  • 这是在 2012 年提出的。您发布的答案与接受的答案相同,但略有不准确。 -1
  • 所选的答案对我来说不适用于 SQL 2019,所以我分享了上面那个有效的答案。
  • 是的,杰克,原始答案适用于 SQL Server 2019(将 msdb 替换为您选择的数据库。您的回答不关心问题的 specific database 部分。因此,它不准确。如果您将数据库和dest.* 子句从接受的查询添加到您的查询,它与接受的答案相同。
猜你喜欢
  • 1970-01-01
  • 2011-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-08
  • 1970-01-01
相关资源
最近更新 更多