我们的服务器上运行了一个控制台应用程序,可根据计划生成报告。
通常,sql锁会阻止处理,这可能会持续几分钟。
即使使用动态管理视图,我也无法确定导致锁定的原因。
E.g。
SELECT sqltext.TEXT,
req.session_id,
req.status,
req.command,
req.cpu_time,
req.total_elapsed_time
FROM sys.dm_exec_requests req
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext
给出:
第1行是被阻止的查询。第2行是我用来生成结果的查询。似乎没有任何其他可能阻止的活动查询。
这导致生产中出现重大问题,我对如何继续处理感到茫然。
有人可以建议我如何尝试并深入了解它吗?
答案 0 :(得分:0)
如果问题与锁定相关,您需要查看sys.dm_tran_locks
。 DMV sys.dm_exec_requests
仅告诉您哪些请求正在阻止&最后的等待类型。详细信息可在其他相关DMV中获得。
下面名为“解决SQL Server 2008中的性能问题”的白皮书包含所有疑难解答步骤:
https://technet.microsoft.com/en-us/library/dd672789(v=sql.100).aspx