Сегодня, когда решила внести изменения в один из индексов в базе данных, получила такую ошибку:
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.htmlhttp://weblogs.asp.net/jeffwids/lock-request-time-out-period-exceededhttp://www.sqlmatters.com/Articles/sp_who2%20-%20filtering%20and%20sorting%20the%20results.aspxhttp://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