sys.dm_xtp_gc_queue_stats (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance
サーバー上の各ガベージ コレクション ワーカー キューに関する情報と、それぞれに関するさまざまな統計情報を出力します。 論理 CPU ごとに 1 つのキューがあります。
メイン ガベージ コレクション スレッド (アイドル スレッド) は、メイン ガベージ コレクション スレッドの最後の呼び出し以降に完了したすべてのトランザクションの更新、削除、挿入された行を追跡します。 ガベージ コレクション スレッドは、起動すると、最も古いアクティブなトランザクションのタイムスタンプが変化しているかどうかを判断します。 最も古いアクティブなトランザクションが変化した場合は、アイドル スレッドにより、書き込みセットが不要になったトランザクションの作業項目が (16 行ごとのチャンクで) エンキューされます。 たとえば、1,024 行を削除すると、64 のガベージ コレクション作業項目がエンキューされます (1 つの作業項目には削除された 16 行が含まれています)。 ユーザー トランザクションがコミットされると、スケジューラでエンキューされたすべての項目が選択されます。 スケジューラにエンキューされた項目がない場合、ユーザー トランザクションは現在の NUMA ノード内の任意のキューを検索します。
sys.dm_xtp_gc_queue_stats を実行してエンキューされた作業が処理されているかどうかを確認することにより、削除された行についてガベージ コレクションでメモリが解放されるかどうかを確認できます。 current_queue_depthのエントリが処理されていない場合、または新しい作業項目がcurrent_queue_depthに追加されていない場合は、ガベージ コレクションによってメモリが解放されていないことを示します。 たとえば、実行時間の長いトランザクションがある場合、ガベージ コレクションを実行することはできません。
詳細については、「 インメモリ OLTP (インメモリ最適化)」を参照してください。
列名 | 種類 | 説明 |
---|---|---|
queue_id | int | キューの一意識別子。 |
total_enqueues | bigint | サーバーの起動後にこのキューにエンキューされたガベージ コレクション作業項目の合計数。 |
total_dequeues | bigint | サーバーが起動してからこのキューからデキューされたガベージ コレクションの作業項目の総数。 |
current_queue_depth | bigint | このキューに存在するガベージ コレクション作業項目の現在の数。 このアイテムは場合によっては 1 つ以上がガベージ コレクションの対象であることを示します。 |
maximum_queue_depth | bigint | このキューに同時に存在した最大項目数。 |
last_service_ticks | bigint | キューが最後に処理された時点の CPU ティック。 |
アクセス許可
VIEW SERVER STATE アクセス許可が必要です。
SQL Server 2022 以降でのアクセス許可
サーバーに対する VIEW SERVER PERFORMANCE STATE アクセス許可が必要です。
ユーザー シナリオ
この出力は、SQL Server が 4 コアで実行されているか、SQL Server インスタンスが 4 コアにアフィニティ化されていることを示しています。
この出力は、処理する作業項目がキューにないことを示しています。 キュー 0 の場合、SQL スタートアップ以降にキューから削除された作業項目の合計数は 15625 で、キューの最大深さは 15625 です。
queue_id total_enqueues total_dequeues current_queue_depth maximum_queue_depth last_service_ticks
----------------------------------------------------------------------------------------------------
0 15625 15625 0 15625 1233573168347
1 15625 15625 0 15625 1234123295566
2 15625 15625 0 15625 1233569418146
3 15625 15625 0 15625 1233571605761