Blocking (lock) zincirini bul
SQL ServerOturumKomut
SELECT r.session_id AS bekleyen_spid,
r.blocking_session_id AS engelleyen_spid,
r.wait_type,
r.wait_time / 1000.0 AS bekleme_sn,
r.status, r.command,
DB_NAME(r.database_id) AS db,
t.text AS bekleyen_sorgu
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) t
WHERE r.blocking_session_id <> 0
ORDER BY r.wait_time DESC;
-- Zincirin en tepesindeki (kok) engelleyeni bulmak icin blocking_session_id'si
-- kendisi engellenmemis SPID'i ara.Ne yapar?
Bekleyen ve onları engelleyen oturumları, bekleme süresi ve çalıştırdıkları sorguyla listeler; lock zincirini görünür kılar.
Ne zaman kullanılır?
"Uygulama takıldı / zaman aşımı" şikayetlerinde lock çakışmasının kaynağını bulmak için.
Dikkat
Kök engelleyeni (kimse tarafından engellenmeyen ama başkalarını engelleyen SPID) öldürmeden önce iş sahibiyle teyit et. Sadece sorgu; risksiz.