Заблоковані сеанси очікування з типом очікування PAGELATCH_ *?


9

Відредаговано: Чому звіти про сеанси блокуються, але чекають PAGELATCH_*, а не LCK_M_пов’язані з ними типи очікування?

Раніше я припускав, що SQL-сервер буде повідомляти про сеанси блокування лише у стовпці blocking_session_Id. Якщо заблоковані сеанси чекали логічного блокування і нічого іншого, наприклад, а PAGELATCH_*.

введіть тут опис зображення


Схоже, багато паралельних сеансів вставляють дані в таблицю. Чи можете ви розмістити структуру таблиці разом з індексами?
Кін Шах

@Kin таблиці, яку починають вставляти за допомогою SPIDs 69, 82 та 84, має кластерний індекс, визначений властивістю IDENTITY (1,1), так що це може бути випадок конфлікту на останній сторінці, але на цьому етапі мене більше цікавить чому заблоковані сеанси чекають із типом очікування, що не стосується блокування. Також цікаво, що SPID 93 намагається поставити XLOCK на абсолютно не пов'язану таблицю з таблицею, вибраною 64.
Pixelated

Відповіді:


6

Раніше я припускав, що SQL Server повідомить про сеанс блокування лише у стовпчику blocking_session_id, якщо заблоковані сеанси чекають логічного блокування, і нічого іншого, наприклад a PAGELATCH_*.

Ви використовуєте sp_WhoIsActiveпроцедуру Адама Маханіка , а не вбудовану програму SQL Server. Процедура Адама повідомляє про всі "цікаві" причини блокування, а не лише про блокування блокування. Основна інформація надходить з різних джерел, включаючи sysprocess , sys.dm_exec_requests та sys.dm_os_waiting_tasks .

Завдання може чекати інших речей, окрім блокування. Наприклад, можливо, можливо придбати ексклюзивний замок на рядку на сторінці, але тоді все одно доведеться чекати, щоб придбати ексклюзивну засувку сторінки (тому що інші завдання засунули ту саму сторінку в несумісному режимі).

У вашому прикладі, PAGELATCH_EXексклюзивні фіксатори сторінок знаходяться на звичайних сторінках даних або покажчиків, а не на сторінках PFS, GAM, SGAM, DCM або BCM, як зазначено (*) в кінці файлу wait_info .

Ви можете знайти документацію (записи в блозі) sp_WhoIsActive тут .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.