Индексы Columnstore - проверка удаленных строк - PullRequest
0 голосов
/ 31 января 2019

У меня есть таблица с 7409825 строками и некластеризованным индексом columnstore.Я использую dmv sys.dm_db_column_store_row_group_physical_stats для проверки удаленных строк.Когда я выполняю удаление в таблице и проверяю столбец delete_rows из dmv, он всегда равен нулю.

Разве не должны отображаться некоторые значения в этом столбце?Я читал, что строки в индексах columnstore не удаляются, а помечаются для удаления, и они должны отображаться в столбце dele_rows из sys.dm_db_column_store_row_group_physical_stats.

У меня нет групп строк в deltastore, все они сжимаются в columnstore.

Я использую этот код для проверки удаленных строк

    SELECT  OBJECT_NAME(CSRowGroups.object_id)as tab,
            CSRowGroups.*
    FROM sys.indexes AS i 
    INNER JOIN sys.objects o
      ON (i.object_id = o.object_id) 
    INNER JOIN sys.dm_db_column_store_row_group_physical_stats AS  CSRowGroups  
      ON i.object_id = CSRowGroups.object_id AND i.index_id = CSRowGroups.index_id 
    WHERE o.name = 'TableName'

1 Ответ

0 голосов
/ 31 января 2019

Только что нашел ответ по этой ссылке:

https://www.mssqltips.com/sqlservertip/4280/sql-server-2016-columnstore-index-enhancements--system-views-for-diskbased-tables/

С некластеризованным индексом хранилища столбцов удаленные строки сначала идут в COLUMN_STORE_DELETE_BUFFER, который можно увидеть на sys.internal_partitions.

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

С уважением

...