web-dev-qa-db-ja.com

PAGELATCH_up *待機タイプで待機しているブロックされたセッション?

編集:セッションレポートがブロックされているが、PAGELATCH_*関連の待機タイプではなくLCK_M_で待機しているのはなぜですか?

以前、SQLサーバーはブロッキングセッションのみをblocking_session_Id列で報告すると想定していました。ブロックされたセッションが論理ロックを待機していて、PAGELATCH_*などの他のものは待機していない場合。

enter image description here

9
Pixelated

以前に、ブロックされたセッションがPAGELATCH_*などの論理ロックを待機していて、論理ロックを待機していない場合、SQL Serverはブロッキングセッションをblocking_session_id列でのみ報告すると想定していました。

組み込みSQL Server機能ではなく、Adam Machanicのsp_WhoIsActiveプロシージャを使用しています。 Adamの手順では、ロックのブロックだけでなく、ブロックの「興味深い」原因がすべて報告されます。基本的な情報は、sysprocessessys.dm_exec_requestssys.dm_os_waiting_tasksなどのさまざまなソースから取得されます

タスクはロック以外の他のものを待つことができます。たとえば、ページの行の排他ロックを取得できても、排他ページの取得を待機する必要があるlatch(他のタスクがラッチしたため)互換性のないモードの同じページ)。

この例では、PAGELATCH_EX排他ページラッチは、PFS、GAM、SGAM、DCM、またはBCMページではなく、通常のデータページまたはインデックスページにあります。wait_info

sp_WhoIsActivehere のドキュメント(ブログエントリ)を見つけることができます。

6
Paul White 9