sys.partitions (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric のSQL 分析エンドポイント Microsoft Fabric のウェアハウス
データベース内のすべてのテーブルとほとんどの種類のインデックスのパーティションごとに 1 行のデータを保持します。 フルテキスト、空間、XML などの特殊なインデックスの種類は、このビューには含まれません。 SQL Server のすべてのテーブルとインデックスには、明示的にパーティション分割されているかどうかに関係なく、少なくとも 1 つのパーティションが含まれます。
列名 | データ型 | 説明 |
---|---|---|
partition_id |
bigint | パーティション ID を示します。 データベース内で一意です。 |
object_id |
int | このパーティションが属するオブジェクトの ID を示します。 すべてのテーブルまたはビューは、少なくとも 1 つのパーティションで構成されます。 |
index_id |
int | このパーティションが所属するオブジェクト内のインデックスの ID を示します。 0 = ヒープ 1 = クラスター化インデックス 2 以上 = 非クラスター化インデックス |
partition_number |
int | 所有するインデックスまたはヒープ内の 1 から始まるパーティション番号。 パーティション分割されていないテーブルとインデックスの場合、この列の値は 1 。 |
hobt_id |
bigint | このパーティションの行を含むデータ ヒープまたは B ツリー (HoBT) の ID を示します。 |
rows |
bigint | このパーティション内の行の概数を示します。 |
filestream_filegroup_id |
smallint | 適用対象: SQL Server 2012 (11.x) 以降のバージョン。 このパーティションに格納されている FILESTREAM ファイル グループの ID を示します。 |
data_compression |
tinyint | 各パーティションの圧縮の状態を示します。 0 = NONE 1 = ROW 2 = PAGE 3 = COLUMNSTORE 1 4 = COLUMNSTORE_ARCHIVE 2 注: フルテキスト インデックスは、SQL Server の任意のエディションで圧縮されます。 |
data_compression_desc |
nvarchar(60) | 各パーティションの圧縮の状態を示します。 行ストア テーブルに使用できる値は、 NONE 、 ROW 、および PAGE です。 列ストア テーブルに使用できる値は、 COLUMNSTORE と COLUMNSTORE_ARCHIVE です。 |
xml_compression |
bit | 適用対象: SQL Server 2022 (16.x) 以降のバージョン。 各パーティションの XML 圧縮の状態を示します。 0 = OFF 1 = ON |
xml_compression_desc |
varchar(3) | 適用対象: SQL Server 2022 (16.x) 以降のバージョン。 各パーティションの XML 圧縮の状態を示します。 設定可能な値は OFF および ON です。 |
1 適用対象: SQL Server 2012 (11.x) 以降のバージョン。
2 適用対象: SQL Server 2014 (12.x) 以降のバージョン。
アクセス許可
ロール public のメンバーシップが必要です。 詳細については、「 Metadata Visibility Configuration」を参照してください。
例
オブジェクトによって使用される領域を決定し、関連するパーティション情報を表示する
次のクエリは、データベース内のすべてのオブジェクト、各オブジェクトで使用される領域の量、および各オブジェクトに関連するパーティション情報を返します。
SELECT object_name(object_id) AS ObjectName,
total_pages / 128. AS SpaceUsed_MB,
p.partition_id,
p.object_id,
p.index_id,
p.partition_number,
p.rows,
p.data_compression_desc
FROM sys.partitions AS p
INNER JOIN sys.allocation_units AS au
ON p.partition_id = au.container_id
ORDER BY SpaceUsed_MB DESC;