Я фиксирую события locks_lock_timeouts_greater_than_0
с помощью расширенных событий в SQL Server. Сеанс событий выглядит следующим образом:
CREATE EVENT SESSION MyQuery ON SERVER
ADD EVENT sqlserver.locks_lock_timeouts_greater_than_0
(
ACTION (sqlserver.sql_text, sqlserver.tsql_stack)
)
ADD TARGET package0.ring_buffer (SET max_memory = 4096)
WITH (max_dispatch_latency = 1 seconds)
Как определить, какой объект заблокирован и кто его в данный момент блокирует?
ОБНОВЛЕНИЕ : мне нужно это для SQL Server 2008. Как отлаживать тайм-ауты блокировки в версиях до 2012 года?