如何检查SQL Server中运行缓慢的查询

时间:2017-12-04 12:07:32

标签: sql sql-server performance

我有一个可以执行长时间或正常时间的查询。我想找到长时间运行的原因。

我已经做过:

  1. 检查查询中使用的对象的锁定。查询

  2. 不存在
  3. 检查计划。所有活动都有正常的费用,因此每次费用都相同

  4. 您能否提出一些我可能要做的步骤或解释运行时差异的原因?

1 个答案:

答案 0 :(得分:0)

我已经定义了三个要调查的地方:

  1. 非最佳查询计划

在这一步中,您应该在执行计划中找到最广泛的操作(使用选项“包括实际执行计划”)

  1. 等待事件。 在这里,您需要为查询找到session_id。如果查询正在运行,则使用:

    SELECT * FROM sys.dm_exec_requests CROSS APPLY sys.dm_exec_sql_text(sql_handle)

    并调查last_wait_type,wait_type,wait_time列

  2. 锁定

上面的查询还会在BlkBy列中返回此信息的块信息