diff --git a/QueryTemplates/Common Scripts/column-store-indexes.sql b/QueryTemplates/Common Scripts/column-store-indexes.sql index 37c15ec..3001070 100644 --- a/QueryTemplates/Common Scripts/column-store-indexes.sql +++ b/QueryTemplates/Common Scripts/column-store-indexes.sql @@ -20,14 +20,17 @@ WHERE object_id = object_id('TableName') ORDER BY row_group_id; -- get some stats around CIX - helps to see which partitions need to be rebuilt -SELECT object_name(object_id) - ,partition_number - ,FORMAT(sum(row_group_id), 'N0') AS row_group_count - ,FORMAT(sum(total_rows), 'N0') AS row_count - ,FORMAT(sum(size_in_bytes), 'N0') AS size_in_bytes - ,FORMAT(sum(size_in_bytes) / sum(total_rows), 'N0') AS size_per_row -FROM sys.dm_db_column_store_row_group_physical_stats -WHERE object_name(object_id) LIKE ' table name %' -GROUP BY object_name(object_id) - ,partition_number -ORDER BY partition_number; +SELECT OBJECT_SCHEMA_NAME(ps.[object_id]) AS schemaName, + OBJECT_NAME(ps.[object_id]) AS tableName, + ps.partition_number, + FORMAT(SUM(ps.row_group_id), 'N0') AS row_group_count, + FORMAT(SUM(ps.total_rows), 'N0') AS row_count, + FORMAT(SUM(ps.deleted_rows), 'N0') AS deleted_rows, + FORMAT(SUM(ps.size_in_bytes), 'N0') AS size_in_bytes, + FORMAT(SUM(ps.size_in_bytes) / sum(total_rows), 'N0') AS size_per_row, + CONCAT('ALTER INDEX [', i.[name], '] ON ', OBJECT_SCHEMA_NAME(ps.[object_id]), '.', OBJECT_NAME(ps.[object_id]), ' REBUILD PARTITION = ', ps.partition_number, ' WITH (DATA_COMPRESSION = COLUMNSTORE, ONLINE = ON, SORT_IN_TEMPDB = ON, /* MAXDOP = 8 */); +GO') AS rebuiltCommand +FROM sys.dm_db_column_store_row_group_physical_stats AS ps + INNER JOIN sys.indexes AS i ON ps.[object_id] = i.[object_id] AND ps.index_id = i.index_id +GROUP BY ps.[object_id], ps.partition_number, i.[name] +ORDER BY ps.partition_number;