連載
» 2022年08月02日 05時00分 公開

メモリ最適化テーブルのチェックポイントファイルに関する情報を出力するSQL Server動的管理ビューレファレンス(133)

「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、メモリ最適化テーブルのチェックポイントファイルに関する情報の出力について解説します。

[椎名武史,@IT]

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.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。