Serverの待機イベントの一つであるロックとラッチがどのような順番で獲得され、解放されるのかトレースしてみました。拡張イベントの設定トレースするにあたって拡張イベントを使います。今回試すSQLはセッション63にて実行するので、フィルタしてあります。KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)GO拡張イベントによるトレース拡張イベントを作成できたら、セッションを開始します。セッション開始後、状況をリアルタイムで確認するために、「ライブデータの監視(L)」を選択します。対象のセッションで今回試したいクエリを実行してみます。先ほど「ライブデータの監視(L)」で開いたウィンドウに結果が表示されているかと思います。クエリ実行後は拡張イベントによる監視を停止します。拡張イベントによるトレース結果から処理の流れを結果を見てみます。実行プランは下記のようなシンプルなものです。Seekのみであり、このクラスターインデックスの奥行は4であるためページラッチの動きは以下のようなイメージになるかと思います。ロックを獲得し、その次にインデックスのルートページからラッチを獲得。次のノードのページからラッチを獲得できたら、前のラッチを解放するということを繰り返して、目的のページまで到達するようなイメージでしょうか。更新処理や複雑なクエリだとロックやラッチはもっと複雑になるかと思いますが、簡単な処理で処理構造を理解しておくことは重要かと思います。Server2016】dm_exec_input_bufferについて月別アーカイブはてなブログをはじめよう!utiowaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。