我有一个可以执行长时间或正常时间的查询。我想找到长时间运行的原因。
我已经做过:
检查查询中使用的对象的锁定。查询
检查计划。所有活动都有正常的费用,因此每次费用都相同
您能否提出一些我可能要做的步骤或解释运行时差异的原因?
答案 0 :(得分:0)
我已经定义了三个要调查的地方:
在这一步中,您应该在执行计划中找到最广泛的操作(使用选项“包括实际执行计划”)
等待事件。 在这里,您需要为查询找到session_id。如果查询正在运行,则使用:
SELECT *
FROM sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text(sql_handle)
并调查last_wait_type,wait_type,wait_time列
锁定
上面的查询还会在BlkBy列中返回此信息的块信息