问题: 正常情况下,执行Rebuild Index都会很快完成,可今天遇到Rebuild Index的Job一直Running。手动执行Rebuild,也一样失败,报“Lock request time out period exceeded. (Microsoft SQL Server, Error: 1222)”,如下图:
解决:
查看当前Running的SPID及SQL Text,特别是长时间运行的,找到与执行Rebuild Index的表相关的SPID,然后KILL掉。我当前遇到的是一个跑了数小时的SQL,KILL掉SPID后,就能正常Rebuild Index。
SELECT r.session_id, r.status, r.start_time, r.command, s.text, r.wait_time, r.cpu_time,
r.total_elapsed_time, r.reads, r.writes, r.logical_reads, r.transaction_isolation_level
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) s
WHERE R.STATUS='running'
另外,你可以查看L