1
0
mirror of https://github.com/alex-bochkov/ssms-addin.git synced 2026-06-15 16:57:06 +02:00

add proper handling of partition number

This commit is contained in:
Alex Bochkov
2019-07-11 22:34:56 -07:00
committed by GitHub
parent e0fc0b33d6
commit b4a3ba983d
@@ -6,10 +6,10 @@ SELECT dbschemas.[name] as 'Schema',
FORMAT(AVG(indexstats.avg_fragmentation_in_percent), 'N2') AS avg_fragmentation_in_percent,
FORMAT(SUM(indexstats.page_count), 'N0') AS page_count,
'ALTER INDEX ['+dbindexes.[name]+'] ON [' + dbschemas.name + '].['+dbtables.[name]+'] REORGANIZE PARTITION = '
+ CAST(indexstats.partition_number AS VARCHAR(3)) + ';' AS CmdReorg,
+ CASE WHEN EXISTS(SELECT TOP 1 1 FROM sys.partition_schemes s WHERE s.data_space_id = dbindexes.data_space_id) THEN CAST(indexstats.partition_number AS VARCHAR(3)) ELSE 'ALL' END + ';' AS CmdReorg,
'ALTER INDEX ['+dbindexes.[name]+'] ON [' + dbschemas.name + '].['+dbtables.[name]+'] REBUILD PARTITION = '
+ CAST(indexstats.partition_number AS VARCHAR(3))
+ ' WITH (ONLINE = ON (WAIT_AT_LOW_PRIORITY ( MAX_DURATION = 1 MINUTES, ABORT_AFTER_WAIT = SELF )), '
+ CASE WHEN EXISTS(SELECT TOP 1 1 FROM sys.partition_schemes s WHERE s.data_space_id = dbindexes.data_space_id) THEN CAST(indexstats.partition_number AS VARCHAR(3)) ELSE 'ALL' END
+ ' WITH (ONLINE = ON (WAIT_AT_LOW_PRIORITY (MAX_DURATION = 1 MINUTES, ABORT_AFTER_WAIT = SELF)), '
+ 'SORT_IN_TEMPDB = ON);' AS CmdRebuild
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS indexstats
INNER JOIN sys.tables dbtables on dbtables.[object_id] = indexstats.[object_id]
@@ -23,5 +23,6 @@ GROUP BY dbschemas.[name],
dbtables.[name],
dbindexes.[index_id],
dbindexes.[name],
indexstats.partition_number
indexstats.partition_number,
dbindexes.data_space_id
ORDER BY avg_fragmentation_in_percent DESC