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


sys.column_store_row_groups (Transact-SQL)

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

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

Имя столбца Тип данных Description
object_id INT Идентификатор таблицы, для которой определен индекс.
index_id INT Идентификатор индекса таблицы, в которой содержится этот индекс columnstore.
partition_number INT Идентификатор секции таблицы, содержащей идентификатор row_group_id группы строк. Partition_number можно использовать для соединения этого динамического административного представления с представлением sys.partitions.
row_group_id INT Номер группы строк, связанный с этой группой строк. Он уникален внутри секции.

-1 = хвост таблицы в памяти.
delta_store_hobt_id bigint Hobt_id для группы строк OPEN в разностном хранилище.

ЗНАЧЕНИЕ NULL, если группа строк не находится в разностном хранилище.

ЗНАЧЕНИЕ NULL для хвоста таблицы в памяти.
state tinyint Идентификатор, связанный с параметром state_description.

0 = INVISIBLE

1 = OPEN;

2 = CLOSED

3 = СЖАТЫЕ

4 = TOMBSTONE
state_description nvarchar(60) Описание сохраняемого состояния группы строк:

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

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 сначала вставляет новые данные в открытую группу строк, которая находится в формате rowstore, а также иногда называется разностной таблицей. После полного завершения открытой группы строк его состояние изменяется на CLOSED. Закрытая группа строк сжимается в формат columnstore путем перемещения кортежа и изменения состояния в COMPRESSED. Процесс перемещения кортежей — это фоновый процесс, который периодически активируется и проверяет, существуют ли закрытые группы строк, готовые к сжатию в группу строк columnstore. Процесс перемещения кортежей также освобождает все группы строк, в которых удалены все строки. Освобожденные группы строк помечены как TOMBSTONE. Чтобы немедленно запустить перемещение кортежа, используйте параметр REORGANIZE инструкции ALTER INDEX .

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

Разрешения

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

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

Примеры

В следующем примере таблица 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)
Часто задаваемые вопросы о запросах к системному каталогу SQL Server
sys.columns (Transact-SQL)
sys.all_columns (Transact-SQL)
sys.computed_columns (Transact-SQL)
Руководство по индексам columnstore
sys.column_store_dictionaries (Transact-SQL)
sys.column_store_segments (Transact-SQL)