検索
連載

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

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

Share
Tweet
LINE
Hatena

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

動作例

 メモリ最適化テーブルを作成して、いくつかクエリやチェックポイントを実行した後に、「sys.dm_db_xtp_checkpoint_files」を実行すると、メモリ最適化テーブルのチェックポイントに関する情報が出力されました(図1)。

図1
図1 メモリ最適化テーブルのチェックポイントに関する情報が出力された

 「file_type_desc」列から各ファイルがどのような役割を持ったファイルであるのかを確認でき、「file_size_used_in_bytes」列から使用されているファイルサイズなどを確認できます。Windowsのコマンドシェルが使用できる「xp_cmdshell」を使用してエクスプローラー上のファイルの一覧を出力すると、「sys.dm_db_xtp_checkpoint_files」の「relative_file_path」列と同じファイルが存在することが確認できます(図2)。

図2
図2 「sys.dm_db_xtp_checkpoint_files」の「relative_file_path」列と同じファイルが存在することが確認できた

※本Tipsは、「Windows Server 2019」上に「SQL Server 2019」をインストールした環境を想定して解説しています。

筆者紹介

椎名 武史(しいな たけし)

BIPROGY株式会社(ビプロジー)所属。Microsoft MVP for Data Platform(2017〜)。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。

伊東 敏章(いとう としあき)

BIPROGY株式会社(ビプロジー)所属。入社以来SQL Server一筋で評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。社内のプログラミングコンテストで4回の優勝経験も持つ。趣味は輪行で週末は自転車を持っての旅行。目標は色々な日本百選を制覇すること。


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る