テーブルパーティションの使用状況を出力するSQL Server動的管理ビューレファレンス(29)

「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、テーブルパーティションの使用状況の出力について解説します。

» 2021年07月27日 05時00分 公開
[伊東敏章@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

SQL Server動的管理ビュー一覧

 本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は動的管理ビュー「sys.dm_db_partition_stats」におけるテーブルパーティションの使用状況の出力について解説します。対応バージョンは、SQL Server 2008以降です。

概要

 SQL Serverでは、テーブルやインデックスをパーティション分割し、1つのテーブルやインデックスを複数のファイルグループに分散できます。パーティション分割を適切に構成することで、メンテナンス時間の短縮やパフォーマンスの向上などにつながる可能性があります。

 パーティション分割の機能は、SQL Server 2016 RTMまではEnterprise Editionのみで使用できる機能でしたが、SQL Server 2016 SP1以降は、Standard Editionでも使用できるようになりました。

 「sys.dm_db_partition_stats」動的管理ビューを使用することで、パーティション分割されたテーブルやインデックスについて、パーティションごとのデータ行数やページ数などの使用状況を確認できます。

出力内容

列名 データ型 説明
partition_id bigint パーティションID
sys.partitionsカタログビューのpartition_idと同値
object_id int パーティションが属するテーブルまたはインデックス付きビューのオブジェクトID
index_id int パーティションが属するヒープまたはインデックスのID
 0 = ヒープ
 1 = クラスタ化インデックス
 >1 = 非クラスタ化インデックス
partition_number int インデックスまたはヒープ内の、1から始まるパーティション番号
in_row_data_page_count bigint パーティションで行内データの格納に使用されているページ数
インデックスのB-Treeの非リーフページは含まれない。IAMページは含まれない
in_row_used_page_count bigint パーティションで行内データの格納、管理に使用されているページの合計数
B-Tree の非リーフ ページ、IAM ページを含む
in_row_reserved_page_count bigint パーティションで行内データの格納、管理に予約されているページの合計数
lob_used_page_count bigint LOBの格納、管理に使用されているページ数
text、ntext、image、varchar(max)、nvarchar(max)、varbinary(max)、xml型の格納と管理で使用する
IAMページを含む
列ストアインデックスの場合、格納と管理に使用されているLOBの合計数
lob_reserved_page_count bigint LOBの格納、管理に予約されたページの合計数
列ストアインデックスの場合、格納と管理に予約されているLOBの合計数
row_overflow_used_page_count bigint 行オーバーフローの格納、管理に使用されているページ数
varchar、nvarchar、varbinary、sql_variant型の格納と管理で使用する
IAMページを含む
row_overflow_reserved_page_count bigint 行オーバーフローの格納、管理に予約されているページ数
used_page_count bigint パーティションで使用されているページの合計数
in_row_used_page_count + lob_used_page_count + row_overflow_used_page_countとして計算される
reserved_page_count bigint パーティションで予約されているページの合計数
in_row_reserved_page_count +lob_reserved_page_count + row_overflow_reserved_page_countとして計算される
row_count bigint パーティション内の行数の概算値

動作例

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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