適用対象:
SQL Server
Azure SQL Database
Azure 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;
関連するコンテンツ