sys.column_store_row_groups (Transact-SQL)

Предоставляет сведения о кластеризованных индексах columnstore по отдельным сегментам, что позволяет администратору принимать решения о сопровождении системы. sys.column_store_row_groups содержит столбец для общего количества физически хранимых строк (включая отмеченные как удаленные строки) и столбец с числом строк, отмеченных как удаленные. Используйте sys.column_store_row_groups для определения того, у каких групп строк высокий процент удаленных строк, из-за чего их нужно перестроить.

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2014 до текущей версии).

Имя столбца

Тип данных

Описание

object_id

int

Идентификатор таблицы, для которой определен индекс.

index_id

int

Идентификатор индекса таблицы, в которой содержится этот индекс columnstore.

partition_number

int

Идентификатор секции таблицы, содержащей идентификатор row_group_id группы строк. Partition_number можно использовать для соединения этого динамического административного представления с представлением sys.partitions.

row_group_id

int

Номер группы строк, связанный с этой группой строк. Он уникален внутри секции.

delta_store_hobt_id

bigint

Hobt_id для разностных групп строк или значение NULL, если тип группы строк не является разностным. Разностная группа строк — это группа строк для чтения и записи, которая принимает новые записи. Состояние разностной группы строк — OPEN. Разностная группа строк остается в формате rowstore и не сжимается в формат columnstore.

состояние

tinyint

Идентификатор, связанный с параметром state_description.

0 = INVISIBLE

1 = OPEN;

2 = CLOSED

3 = COMPRESSED

state_desccription

nvarchar(60)

Описание сохраняемого состояния группы строк:

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

OPEN — группа строк для чтения и записи, которая принимает новые записи. Открытая группа строк остается в формате rowstore и не сжимается в формат columnstore.

CLOSED — группа строк, которая была заполнена, но еще не сжата процессом перемещения кортежей.

COMPRESSED — группа строк, которая заполнена и сжата.

total_rows

bigint

Общее число строк, которые физически хранятся в группе строк. Некоторые из строк могли быть удалены, но хранятся и дальше. Максимальное количество строк в группе — 1 048 576 (FFFFF в шестнадцатеричном формате).

deleted_rows

bigint

Общее число строк в группе строк, которые отмечены как удаленные. Это значение всегда равно 0 для групп строк DELTA.

size_in_bytes

bigint

Размер в байтах всех данных в этой группе строк (не включая метаданные или общие словари), как для групп строк DELTA и COLUMNSTORE.

Замечания

Возвращает одну строку для каждой группы строк columnstore для каждой таблицы с кластеризованным или некластеризованным индексом columnstore.

Используйте sys.column_store_row_groups, чтобы определить число строк, включенных в группу строк, и размер группы строк.

Если количество удаленных строк в группе становится большим по отношению к общему числу строк, таблица становится менее эффективной. Перестройте индекс columnstore, чтобы сократить размер таблицы и уменьшить число дисковых операций ввода-вывода, необходимых для чтения таблицы. Для перестроения индекса columnstore используйте параметр REBUILD инструкции ALTER INDEX.

Обновляемая группа строк columnstore сначала вставляет новые данные в группу OPEN в формате rowstore. Ее также иногда называют таблицей разности. После заполнения открытой группы строк ее состояние меняется на CLOSED. Закрытая группа строк сжимается в формат columnstore процессом перемещения кортежей, после чего состояние меняется на COMPRESSED. Процесс перемещения кортежей — это фоновый процесс, который периодически активируется и проверяет, существуют ли закрытые группы строк, готовые к сжатию в группу строк columnstore. Процесс перемещения кортежей также освобождает все группы строк, в которых удалены все строки. Освобождение группы строк отмечается как RETIRED. Для запуска процесса перемещения кортежей используйте параметр REORGANIZE инструкции ALTER INDEX.

Когда группа строк columnstore заполняется, она сжимаются и прекращает принимать новые строки. Когда строки удаляются из сжатой группы, они сохраняются в ней, но отмечаются как удаленные. Обновления сжатой группы реализуются как удаление из сжатой группы и вставка в открытую группу.

Разрешения

Возвращает данные для таблицы, если у пользователя есть разрешение VIEW DEFINITION для таблицы.

Видимость метаданных в представлениях каталогов ограничивается защищаемыми объектами, которыми пользователь владеет или на которые ему были предоставлены разрешения. Дополнительные сведения см. в разделе Настройка видимости метаданных.

Примеры

Следующий пример соединяет таблицу sys.column_store_row_groups с другими системными таблицами для получения сведений об определенных таблицах. Вычисляемый столбец PercentFull — это оценка эффективности группы строк. Чтобы найти сведения об одной таблице, удалите символы комментариев (дефисы) перед предложением WHERE и укажите имя таблицы.

SELECT i.object_id, object_name(i.object_id) AS TableName, 
i.name AS IndexName, i.index_id, i.type_desc, 
CSRowGroups.*, 
100*(total_rows - ISNULL(deleted_rows,0))/total_rows AS PercentFull  
FROM sys.indexes AS i
JOIN sys.column_store_row_groups AS CSRowGroups
    ON i.object_id = CSRowGroups.object_id
AND i.index_id = CSRowGroups.index_id 
--WHERE object_name(i.object_id) = '<table_name>' 
ORDER BY object_name(i.object_id), i.name, row_group_id;

См. также

Справочник

Представления каталога объектов (Transact-SQL)

Представления каталога (Transact-SQL)

sys.columns (Transact-SQL)

sys.all_columns (Transact-SQL)

sys.computed_columns (Transact-SQL)

sys.column_store_dictionaries (Transact-SQL)

sys.column_store_segments (Transact-SQL)

Основные понятия

Часто задаваемые вопросы о запросах к системному каталогу сервера SQL Server

Описание индексов columnstore

Описание индексов columnstore