Поделиться через


sys.internal_partitions (Transact-SQL)

Область применения:SQL Server 2016 (13.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure

Возвращает одну строку для каждого набора строк, который отслеживает внутренние данные для индексов columnstore в таблицах на основе дисков. Эти наборы строк являются внутренними для индексов columnstore и отслеживают удаленные строки, сопоставления строк и разностные хранилища групп строк. Они отслеживают данные для каждой секции таблицы. Каждая таблица имеет по крайней мере одну секцию. Ядро СУБД повторно создает наборы строк при каждом перестроении индекса columnstore.

Имя столбца Тип данных Описание
partition_id bigint Идентификатор секции для этой секции. Является уникальным в пределах базы данных.
object_id int Идентификатор объекта для таблицы, содержащей секцию.
index_id int Идентификатор индекса columnstore, определенный в таблице.

1 = кластеризованный индекс columnstore
2 = некластеризованный индекс columnstore
partition_number int Номер секции.

1 = первая секция секционированной таблицы или одна секция непартиментной таблицы.

2 = вторая секция и т. д.
internal_object_type tinyint Объекты набора строк, отслеживающие внутренние данные индекса columnstore.

2 = COLUMN_STORE_DELETE_BITMAP
3 = COLUMN_STORE_DELTA_STORE
4 = COLUMN_STORE_DELETE_BUFFER
5 = COLUMN_STORE_MAPPING_INDEX
internal_object_type_desc nvarchar(60) COLUMN_STORE_DELETE_BITMAP — Этот индекс растрового изображения отслеживает строки, помеченные как удаленные из columnstore. Растровое изображение предназначено для каждой группы строк, так как секции могут иметь строки в нескольких группах строк. Эти строки по-прежнему физически присутствуют и занимают место в columnstore.

COLUMN_STORE_DELTA_STORE — хранит группы строк, называемые группами строк, которые не были сжаты в хранилище столбцов. Каждая секция таблицы может иметь ноль или больше групп строк deltastore.

COLUMN_STORE_DELETE_BUFFER — для поддержания удаления для обновляемых некластеризованных индексов columnstore. Когда запрос удаляет строку из базовой таблицы rowstore, буфер удаления отслеживает удаление из columnstore. Если число удаленных строк превышает 1048 576, они объединяются обратно в растровое изображение по фоновому потоку кортежа Mover или ALTER INDEX ... REORGANIZE операции. В любой момент времени объединение растрового изображения удаления и буфер удаления представляет все удаленные строки.

COLUMN_STORE_MAPPING_INDEX — используется только в том случае, если кластеризованный индекс columnstore имеет вторичный некластеризованный индекс. Это сопоставляет некластеризованные ключи индекса с идентификатором группы строк и строки в columnstore. Он хранит только ключи для строк, которые перемещаются в другую группу строк. Это происходит, когда разностная группа строк сжимается в columnstore и когда операция слияния объединяет строки из двух разных групп строк.
row_group_id int Идентификатор группы строк deltastore. Каждая секция таблицы может иметь ноль или больше групп строк deltastore.
hobt_id bigint Идентификатор внутреннего объекта набора строк (HoBT). Можно использовать в соединениях с другими системными представлениями и функциями, такими как sys.dm_db_index_physical_stats() для получения дополнительных сведений о физических характеристиках внутреннего набора строк.
rows bigint Приблизительное количество строк в данной секции.
data_compression tinyint Тип сжатия для каждой секции:

0 = NONE
1 = ROW
2 = PAGE
data_compression_desc nvarchar(60) Тип сжатия для каждой секции. Возможные значения таблиц rowstore: NONEи ROWPAGE. Возможные значения таблиц columnstore: COLUMNSTORE и COLUMNSTORE_ARCHIVE.

Разрешения

Необходимо членство в роли public. Дополнительные сведения см. в разделе Metadata Visibility Configuration.

Замечания

Ядро СУБД повторно создает внутренние индексы columnstore при каждом создании или перестроении индекса columnstore.

Примеры

А. Просмотр всех внутренних наборов строк для таблицы

В этом примере возвращаются все внутренние наборы строк columnstore для таблицы. Вы также можете использовать 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>');