適用於: SQL Server 2016 (13.x) 及以後版本
Azure SQL Database Azure
SQL Managed Instance
SQL database in Microsoft Fabric
針對每個數據列集傳回一個數據列集,以追蹤磁碟數據表上數據行存放區索引的內部數據。 這些數據列集是數據行存放區索引的內部,可追蹤已刪除的數據列、數據列群組對應,以及差異存放區數據列群組。 它們會追蹤每個數據表數據分割的數據。 每個數據表至少有一個數據分割。 Database Engine 會在每次重建數據行存放區索引時重新建立數據列集。
| 資料行名稱 | 資料類型 | 描述 |
|---|---|---|
partition_id |
bigint | 此數據分割的數據分割識別碼。 這是資料庫內唯一的。 |
object_id |
int | 包含數據分割之數據表的物件識別碼。 |
index_id |
int | 數據表上定義之數據行存放區索引的索引標識碼。 1 = 叢集資料行存放區索引 2 = 非叢集資料行存放區索引 |
partition_number |
int | 數據分割編號。 1 = 資料分割數據表的第一個分割區,或非分割數據表的單一分割區。 2 = 第二個數據分割,依故。 |
internal_object_type |
tinyint | 追蹤數據行存放區索引內部數據的數據列集物件。 2 = COLUMN_STORE_DELETE_BITMAP3 = COLUMN_STORE_DELTA_STORE4 = COLUMN_STORE_DELETE_BUFFER5 = COLUMN_STORE_MAPPING_INDEX |
internal_object_type_desc |
nvarchar(60) |
COLUMN_STORE_DELETE_BITMAP - 此點陣圖索引會追蹤標示為從數據行存放區中刪除的數據列。 位圖適用於每個數據列群組,因為分割區可以有多個數據列群組中的數據列。 這些數據列仍會實際存在,並佔用數據行存放區中的空間。COLUMN_STORE_DELTA_STORE - 儲存尚未壓縮成單欄記憶體的數據列群組,稱為數據列群組。 每個數據表分割區可以有零個或多個差異存放區數據列群組。COLUMN_STORE_DELETE_BUFFER - 為了維護可更新的非叢集數據行存放區索引的刪除。 當查詢從基礎數據列存放區數據表中刪除數據列時,刪除緩衝區會追蹤資料行存放區中的刪除。 當已刪除的數據列數目超過 1,048,576 時,會由 Tuple Mover 背景線程或 ALTER INDEX ... REORGANIZE 作業合併回刪除位圖。 在任何指定的時間點,刪除點陣陣圖和刪除緩衝區的聯集代表所有已刪除的數據列。COLUMN_STORE_MAPPING_INDEX - 只有在叢集數據行存放區索引具有次要非叢集索引時才使用。 這會將非叢集索引鍵對應至數據行存放區中的數據列群組和數據列標識碼。 它只會儲存移至不同數據列群組之數據列的索引鍵。 當差異數據列群組壓縮到數據行存放區,以及合併作業合併兩個不同數據列群組的數據列時,就會發生這種情況。 |
row_group_id |
int | 差異存放區數據列群組的標識碼。 每個數據表分割區可以有零個或多個差異存放區數據列群組。 |
hobt_id |
bigint | 內部數據列集物件的標識碼(HoBT)。 可用於與其他系統檢視和函式的聯結,例如 sys.dm_db_index_physical_stats() 以取得內部數據列集實體特性的詳細資訊。 |
rows |
bigint | 此分割區中大約的數據列數目。 |
data_compression |
tinyint | 每個分割區的壓縮類型: 0 = NONE1 = ROW2 = PAGE |
data_compression_desc |
nvarchar(60) | 每個分割區的壓縮類型。 資料欄存放區資料表 NONE的可能值為、 ROW和 PAGE。 資料存放區資料表 COLUMNSTORE 的可能值為 與 COLUMNSTORE_ARCHIVE。 |
權限
需要 public 角色中的成員資格。 如需相關資訊,請參閱 Metadata Visibility Configuration。
備註
Database Engine 會在每次建立或重建數據行存放區索引時,重新建立新的數據行存放區內部索引。
範例
A。 檢視數據表的所有內部數據列集
本範例會傳回數據表的所有內部數據行存放區數據列集。 您也可以使用 數據 hobt_id 行與其他系統檢視和函式聯結,並尋找特定數據列集的詳細資訊。
SELECT i.object_id,
i.index_id,
i.name,
p.hobt_id,
p.internal_object_type_id,
p.internal_object_type_desc
FROM sys.internal_partitions AS p
INNER JOIN sys.indexes AS i
ON i.object_id = p.object_id
WHERE p.object_id = OBJECT_ID('<table name>');