編集:セッションレポートがブロックされているが、PAGELATCH_*
関連の待機タイプではなくLCK_M_
で待機しているのはなぜですか?
以前、SQLサーバーはブロッキングセッションのみをblocking_session_Id列で報告すると想定していました。ブロックされたセッションが論理ロックを待機していて、PAGELATCH_*
などの他のものは待機していない場合。
以前に、ブロックされたセッションが
PAGELATCH_*
などの論理ロックを待機していて、論理ロックを待機していない場合、SQL Serverはブロッキングセッションをblocking_session_id列でのみ報告すると想定していました。
組み込みSQL Server機能ではなく、Adam Machanicのsp_WhoIsActive
プロシージャを使用しています。 Adamの手順では、ロックのブロックだけでなく、ブロックの「興味深い」原因がすべて報告されます。基本的な情報は、sysprocesses、sys.dm_exec_requests、sys.dm_os_waiting_tasksなどのさまざまなソースから取得されます。
タスクはロック以外の他のものを待つことができます。たとえば、ページの行の排他ロックを取得できても、排他ページの取得を待機する必要があるlatch(他のタスクがラッチしたため)互換性のないモードの同じページ)。
この例では、PAGELATCH_EX
排他ページラッチは、PFS、GAM、SGAM、DCM、またはBCMページではなく、通常のデータページまたはインデックスページにあります。wait_info。
sp_WhoIsActive
here のドキュメント(ブログエントリ)を見つけることができます。