Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
Azure SQL База данных
Azure SQL Управляемый экземпляр
SQL База данных в Microsoft Fabric
Предоставляет сведения об индексе columnstore для каждого сегмента.
Для кластеризованных индексов sys.column_store_row_groups columnstore содержит столбец для общего количества строк, физически хранящихся (включая помеченные как удаленные) и столбец для числа строк, помеченных как удаленные. Используется 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 |
OPEN Группа hobt_id строк в разностном хранилище.ЗНАЧЕНИЕ NULL, если группа строк не хранится в разностном хранилище. NULL для хвоста оптимизированной для памяти таблицы. |
state |
tinyint | Число, описывающее состояние группы строк. 0 = INVISIBLE1 = OPEN2 = CLOSED3 = COMPRESSED4 = TOMBSTONE |
state_description |
nvarchar(60) | Описание состояния группы строк:INVISIBLE — скрытый сжатый сегмент в процессе построения из данных в разностном хранилище. Действия чтения используют разностное хранилище, пока невидимый сжатый сегмент не будет завершен. Когда новый сегмент станет видимым, исходное разностное хранилище будет удалено.OPEN — группа строк чтения и записи, принимаюющая новые строки. Открытая группа строк по-прежнему находится в формате rowstore и не сжимается до формата columnstore.CLOSED — группа строк, заполненная, но еще не сжимаемая процессом перемещения кортежа.COMPRESSED — группа строк, заполненная и сжимаемая. |
total_rows |
bigint | Общее число строк, которые физически хранятся в группе строк. Удаленные строки по-прежнему могут храниться. Максимальное количество строк в группе строк — 1 048 576. |
deleted_rows |
bigint | Всего строк в группе строк, помеченных как удаленные, но сохраняемые. Это значение всегда 0 предназначено для групп разностных строк.Для некластеризованных индексов columnstore это значение не включает удаленные строки, хранящиеся в буфере удаления. Дополнительные сведения и поиск количества удаленных строк в буфере удаления см. в sys.internal_partitions. |
size_in_bytes |
bigint | Размер в байтах всех данных в этой группе строк (не включая метаданные или общие словари), как для разностного хранилища, так и для групп строк 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 разрешение на таблицу.
Видимость метаданных в представлениях каталога ограничена защищаемыми объектами, которыми владеет пользователь или которым пользователь получил некоторое разрешение. Дополнительные сведения см. в разделе "Конфигурация видимости метаданных".
Примеры
В следующем примере выполняется присоединение sys.column_store_row_groups представления и других системных представлений к возврату сведений о кластеризованных индексах columnstore. Столбец percent_full представляет собой оценку эффективности группы строк.
SELECT i.object_id,
OBJECT_SCHEMA_NAME(i.object_id) AS schema_name,
OBJECT_NAME(i.object_id) AS table_name,
i.name AS index_name,
i.type_desc AS index_type_desc,
rg.partition_number,
rg.row_group_id,
rg.state_description,
rg.total_rows,
rg.deleted_rows,
rg.size_in_bytes,
100 * (rg.total_rows - ISNULL(rg.deleted_rows, 0)) / total_rows AS percent_full
FROM sys.indexes AS i
INNER JOIN sys.column_store_row_groups AS rg
ON i.object_id = rg.object_id
AND i.index_id = rg.index_id
WHERE INDEXPROPERTY(i.object_id, i.name, 'IsClustered') = 1
ORDER BY schema_name, table_name, index_name, row_group_id;
Дополнительные сведения см. в разделе " Проверка фрагментации индекса columnstore".