sys.dm_xtp_gc_stats (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance
インメモリ OLTP ガベージ コレクション プロセスの現在の動作に関する情報 (全体的な統計情報) を提供します。
行は、通常のトランザクション処理の一部として、またはメイン ガベージ コレクション スレッド (アイドル 状態のワーカーと呼ばれます) によってガベージ コレクションされます。 ユーザー トランザクションがコミットすると、ガベージ コレクション キュー (sys.dm_xtp_gc_queue_stats (Transact-SQL)) から 1 つの作業項目がデキューされます。 ガベージ コレクションが可能であってもメイン ユーザー トランザクションでアクセスされなかった行のガベージ コレクションは、ダスティ コーナー スキャン (使用頻度が低いインデックスの領域のスキャン) の一環としてアイドル ワーカーによって実行されます。
詳細については、「 インメモリ OLTP (インメモリ最適化)」を参照してください。
列名 | 種類 | 説明 |
---|---|---|
rows_examined | bigint | サーバーの起動後にガベージ コレクション サブシステムによって調べられた行の数。 |
rows_no_sweep_needed | bigint | ダスティ コーナー スキャンなしで削除された行の数。 |
rows_first_in_bucket | bigint | ガベージ コレクションによって検査された、ハッシュ バケットの最初の行であった行の数。 |
rows_first_in_bucket_removed | bigint | 削除されたハッシュ バケットの最初の行であるガベージ コレクションによって調べられた行の数。 |
rows_marked_for_unlink | bigint | ガベージ コレクションによって検査された、ref_count が =0 のインデックスで既に unlinked としてマークされていた行の数。 |
parallel_assist_count | bigint | ユーザー トランザクションで処理された行の数。 |
idle_worker_count | bigint | アイドル状態のワーカーによって処理されたガベージ行の数。 |
sweep_scans_started | bigint | ガベージ コレクション サブシステムによって実行されるダスティ コーナー スキャンの数。 |
sweep_scan_retries | bigint | ガベージ コレクション サブシステムによって実行されるダスティ コーナー スキャンの数。 |
sweep_rows_touched | bigint | ダスティコーナー処理によって読み取られた行。 |
sweep_rows_expiring | bigint | ダスティ コーナー処理によって読み取られた行の有効期限が切れています。 |
sweep_rows_expired | bigint | ダスティ コーナー処理によって読み取られた、期限切れの行。 |
sweep_rows_expired_removed | bigint | ダスティコーナー処理によって削除された期限切れの行。 |
アクセス許可
インスタンスに対する VIEW SERVER STATE 権限が必要です。
SQL Server 2022 以降でのアクセス許可
サーバーに対する VIEW SERVER PERFORMANCE STATE アクセス許可が必要です。
使用シナリオ
出力例を次に示します。
rows_examined rows_no_sweep_needed rows_first_in_bucket rows_first_in_bucket_removed
280085 209512 69905
rows_first_in_bucket_removed rows_marked_for_unlink parallel_assist_count idle_worker_count
69905 0 8953
idle_worker_count sweep_scans_started sweep_scan_retries sweep_rows_touched
10306473 670 0 1343
sweep_rows_expiring sweep_rows_expired sweep_rows_expired_removed
0 673673