Ошибка Lock request time out period exceeded. при удалении/изменении индекса в базе

Sep 18, 2014 09:49

Сегодня, когда решила внести изменения в один из индексов в базе данных, получила такую ошибку:

TITLE: Microsoft SQL Server Management Studio
------------------------------
Lock request time out period exceeded. (Microsoft SQL Server, Error: 1222)
------------------------------

Ознакомление со статьями:
http://venkatsqlserverclub.blogspot.ru/2011/08/lock-request-time-out-issues.html
http://weblogs.asp.net/jeffwids/lock-request-time-out-period-exceeded
http://www.sqlmatters.com/Articles/sp_who2%20-%20filtering%20and%20sorting%20the%20results.aspx
http://msdn.microsoft.com/ru-ru/library/ms173730.aspx

привело к появлению следующего скрипта:

--Определяем какие процессы запущены и ищем среди них тот, который может лочить наши таблицу
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 ,r.*
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) s
SELECT  distinct object_name(a.rsc_objid), a.req_spid, b.loginame
from master.dbo.syslockinfo a (nolock) join master.dbo.sysprocesses b (nolock) on a.req_spid=b.spid
where object_name(a.rsc_objid) is NOT NULL
--Определяем кем и когда был запущен данный процесс
EXEC sp_who2
--Убиваем процесс и после этого изменяем/удаляем индекс
KILL ***--номер процесса, поле r.session_id

sp_who2, индексы, sql

Previous post
Up