【问题标题】:SQL Server : Tracking a slow running query on completionSQL Server:在完成时跟踪运行缓慢的查询
【发布时间】:2015-07-23 04:18:15
【问题描述】:

我正在尝试为运行缓慢的查询编写脚本。我知道我们可以使用sys.dm_exec_requests 获取运行缓慢的查询列表。比如说,我有一个查询 Q1 运行速度非常慢,比如 1 小时。直到 Q1 运行,即执行,我可以使用 sys.dm_exec_requests DMV 跟踪它。如果我理解正确的话,一旦 Q1 完成,它的统计数据将不再在这个 DMV 中可用。相反,我们需要查看sys.dm_exec_query_stats。但是如何获得运行缓慢的特定查询 Q1 的统计信息?这意味着我如何关联我之前在 sys.dm_exec_requests 和 sys.dm_exec_query_stats 中获得的数据?

【问题讨论】:

  • 您列出了三个截然不同的 SQL Server 版本。是否需要任何解决方案来解决所有问题?
  • 是的@BenThul。我们有多种 SQL 配置;因此需要。

标签: sql-server sql-server-2008 sql-server-2005 sql-server-2012


【解决方案1】:

由于您要在如此广泛的版本中进行操作,因此您将不得不使用最低的公分母,即 SQL 跟踪。设置对存储过程完成和临时语句完成的跟踪,这需要比某个阈值更长的时间。然后在服务器端运行它并每隔一段时间查看一次输出。

值得注意的是,如果不是 2005 年,我会建议扩展活动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多