メモリ最適化テーブルのチェックポイントファイルに関する情報を出力する:SQL Server動的管理ビューレファレンス(133)
「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、メモリ最適化テーブルのチェックポイントファイルに関する情報の出力について解説します。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は動的管理ビュー「sys.dm_db_xtp_checkpoint_files」における、メモリ最適化テーブルのチェックポイントファイルに関する情報の出力について解説します。対応バージョンは、SQL Server(サポートされている全てのバージョン)、「Azure SQL Database」「Azure SQL Managed Instance」です。
概要
SQL ServerではインメモリOLTPを使用することで、トランザクション処理やデータ取得、データロード、一時データ・シナリオのパフォーマンスを最適化できます。インメモリOLTPでは、データアクセスやトランザクション実行は、従来のディスクベースのオブジェクトとは異なるアルゴリズムで処理されます。インメモリOLTPでは、作成時にメモリが最適化されるメモリ最適化テーブルを作成できます。
さらにインメモリOLTPでは、パフォーマンスを向上しながらデータの永続性を保つために、専用のチェックポイントファイルが使用されます。チェックポイントファイルには、挿入された行が含まれるデータファイルや、削除された行への参照が含まれるデルタファイルなどが存在し、定期的にマージ処理を実施しています。
「sys.dm_db_xtp_checkpoint_files」では、メモリ最適化テーブルのチェックポイントファイルに関する情報を出力します。
出力内容
列名 | データ型 | 説明 |
---|---|---|
container_id | int | データやデルタファイルが含まれているコンテナのID |
container_guid | uniqueidentifier | データやデルタファイルが含まれているコンテナのGUID |
checkpoint_file_id | uniqueidentifier | チェックポイントファイルのGUID |
relative_file_path | nvarchar(256) | マップ先のコンテナを基準としたファイルの相対パス |
file_type | smallint | ファイルタイプ。次のいずれかになる 「-1」=フリー 「0」=DATA 「1」=DELTA 「2」=ROOT 「3」=LARGE DATA |
file_type_desc | nvarchar(60) | ファイルタイプの詳細。次のいずれかになる FREE DATA DELTA ROOT LARGE DATA |
internal_storage_slot | int | 内部ストレージ配列内のファイルのインデックス |
checkpoint_pair_file_id | uniqueidentifier | 対応するデータまたはデルタファイル |
file_size_in_bytes | bigint | ディスク上のファイルのサイズ |
file_size_used_in_bytes | bigint | 使用中のファイルサイズ |
logical_row_count | bigint | 挿入もしくは削除された行数 |
state | smallint | 状態。次のいずれかになる 「0」=事前作成済み 「1」=作成中 「2」=ACTIVE 「3」=マージターゲット 「8」=ログの切り捨てを待機中 |
state_desc | nvarchar(60) | 状態の説明。次のいずれかになる PRECREATED UNDER CONSTRUCTION ACTIVE MERGE TARGET WAITTING FOR LOG TRUNCATION |
lower_bound_tsn | bigint | ファイル内のトランザクションの下限 |
upper_bound_tsn | bigint | ファイル内のトランザクションの上限 |
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) | 暗号化の状態の説明。次のいずれかになる UNENCRYPTED ENCRYPTED WITH KEY 1 ENCRYPTED WITH KEY 2 |
動作例
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- SQL Serverの動的管理ビューとは?
「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。 - 「DMV(Dynamic Management View)」でパフォーマンス遅延の「原因」を調べる
本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「処理遅延の原因を追求する“DMVの使い方”」を説明します。 - SQL Serverの動きを制御する「トレースフラグ」とは何か
「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「トレースフラグ」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。初回は「トレースフラグとはそもそも何か」を解説します。