sys.dm_db_xtp_checkpoint_files(Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

インメモリ OLTP チェックポイント ファイルに関する情報 (ファイル サイズ、物理的な場所、トランザクション ID など) を表示します。

Note

閉じていない現在のチェックポイントの場合、 sys.dm_db_xtp_checkpoint_files の状態列は新しいファイルの UNDER CONSTRUCTION になります。 チェックポイントは、最後のチェックポイント以降に十分なトランザクション ログが増加した場合、または CHECKPOINT コマンドを発行した場合に自動的に閉じます。 詳細については、「CHECKPOINT (Transact-SQL)」を参照してください。

メモリ最適化ファイル グループは、メモリ内テーブルの挿入行と削除行を格納するために、追加専用ファイルを内部的に使用します。 ファイルには 2 種類あります。 データ ファイルには挿入された行が含まれますが、デルタ ファイルには削除された行への参照が含まれています。

詳細については、「 メモリ最適化オブジェクトのストレージの作成と管理を参照してください。

列名 タイプ Description
container_id int データまたはデルタ ファイルの一部であるコンテナーの ID ( sys.database_filesで FILESTREAM 型のファイルとして表されます)。 file_idとの結合。
container_guid uniqueidentifier ルート、データ、またはデルタ ファイルの一部であるコンテナーの GUID。 file_guid テーブル内のsys.database_filesと結合します。
checkpoint_file_id uniqueidentifier チェックポイント ファイルの GUID。
relative_file_path nvarchar(256) マップされるコンテナーに対する相対ファイルのパス。
file_type smallint -1 (無料)

DATA ファイルの場合は 0。

DELTA ファイルの場合は 1。

ROOT ファイルの場合は 2

LARGE DATA ファイルの場合は 3
file_type_desc nvarchar(60) FREE - FREE として保持されているすべてのファイルを割り当てに使用できます。 空きファイルは、システムによって予想されるニーズに応じてサイズが異なる場合があります。 最大サイズは 1 GB です。

DATA - データ ファイルには、メモリ最適化テーブルに挿入された行が含まれます。

DELTA - Delta ファイルには、削除されたデータ ファイル内の行への参照が含まれています。

ROOT - ルート ファイルには、メモリ最適化オブジェクトとネイティブ コンパイル オブジェクトのシステム メタデータが含まれます。

LARGE DATA - 大きなデータ ファイルには、(n)varchar(max) 列と varbinary(max) 列に挿入された値と、メモリ最適化テーブルの列ストア インデックスの一部である列セグメントが含まれます。
internal_storage_slot int 内部ストレージ アレイ内のファイルのインデックス。 NULL ROOT または 1 以外の状態の場合。
checkpoint_pair_file_id uniqueidentifier 対応する DATA ファイルまたは DELTA ファイル。 NULL ROOT の場合。
file_size_in_bytes bigint ディスク上のファイルのサイズ。
file_size_used_in_bytes bigint まだ設定されているチェックポイント ファイルのペアの場合、この列は次のチェックポイントの後に更新されます。
logical_row_count bigint データの場合、挿入された行の数。

Delta の場合、ドロップ テーブルを計算した後に削除された行の数。

ルートの場合は NULL。
状態 smallint 0 - 事前作成済み

1 - 建設中

2 - アクティブ

3 - MERGE ターゲット

8 - ログの切り捨てを待機しています
state_desc nvarchar(60) PRECREATED - トランザクションの実行中に新しいファイルを割り当てる待機を最小限に抑えたり排除したりするために、多数のチェックポイント ファイルが事前に割り当てられます。 これらのファイルのサイズは異なる場合があり、ワークロードの推定ニーズに応じて作成されます。 データが含まれています。 これは、MEMORY_OPTIMIZED_DATA ファイル グループを持つデータベースのストレージ オーバーヘッドです。

UNDER CONSTRUCTION - これらのチェックポイント ファイルは構築中です。つまり、データベースによって生成されたログ レコードに基づいて設定されており、チェックポイントの一部ではありません。

ACTIVE - 以前に閉じられたチェックポイントから挿入または削除された行が含まれます。 データベースの再起動時にトランザクション ログのアクティブな部分を適用する前に、領域がメモリに読み込まれるテーブルの内容が含まれます。 マージ操作がトランザクション ワークロードに対応していると仮定すると、これらのチェックポイント ファイルのサイズはメモリ最適化テーブルのメモリ内サイズの約 2 倍になると予想されます。

MERGE TARGET - マージ操作の対象 - これらのチェックポイントファイルはマージポリシーで特定されたソースファイルの統合されたデータ行を格納します。 マージがインストールされると、 MERGE TARGETはアクティブ状態に移行します。

ログの切り詰め待ち - マージがインストールされ、 MERGE ターゲットCFPが耐久チェックポイントの一部になると、マージソースチェックポイントファイルがこの状態に移行します。 この状態のファイルは、メモリ最適化テーブルを使用したデータベースの操作の正確性のために必要です。 たとえば、永続的なチェックポイントから復旧して、時間をさかのぼって戻る場合などです。
lower_bound_tsn bigint ファイル内のトランザクションの下限。状態が (1, 3) でない場合に NULL します。
upper_bound_tsn bigint ファイル内のトランザクションの上限。状態が (1, 3) でない場合に NULL します。
begin_checkpoint_id bigint 開始チェックポイントの ID。
end_checkpoint_id bigint 終了チェックポイントの ID。
last_updated_checkpoint_id bigint このファイルを更新した最後のチェックポイントの ID。
encryption_status smallint 0、1、2
encryption_status_desc nvarchar(60) 0 =暗号化されていない>

1 = キー 1 で暗号化された>

2 = キー 2 で暗号化> 。 アクティブなファイルに対してのみ有効です。

Permissions

データベースに対する VIEW DATABASE STATE 権限が必要です。

SQL Server 2022 以降でのアクセス許可

データベース VIEWDATABASE パフォーマンス状態の許可が必要です。

使用例

インメモリ OLTP で使用されるストレージの合計は、次のように見積もることができます。

-- total storage used by In-Memory OLTP  
SELECT SUM (file_size_in_bytes)/(1024*1024) as file_size_in_MB  
FROM sys.dm_db_xtp_checkpoint_files;

状態とファイルの種類別のストレージ使用率の内訳を表示するには、次のクエリを実行します。

SELECT state_desc  
 , file_type_desc  
 , COUNT(*) AS [count]  
 , SUM(file_size_in_bytes) / 1024 / 1024 AS [on-disk size MB]   
FROM sys.dm_db_xtp_checkpoint_files  
GROUP BY state, state_desc, file_type, file_type_desc  
ORDER BY state, file_type;