Obviously, you need to weigh up the benefits of doing so first.
This version includes the rowcounts but orders the statements so you compress the table before it's associated indexes.
SELECT distinct rows,SCHEMA_NAME(schema_id) as SchemaName, Name AS TableName,'Table' AS ObjectType,1 AS ExecutionOrder,'ALTER TABLE [' + SCHEMA_NAME(schema_id) + '].[' + NAME + '] REBUILD PARTITION = ALL WITH (MAXDOP=1,ONLINE=ON,DATA_COMPRESSION = PAGE);' AS [SQLCommand] FROM sys.objects o inner join sys.partitions p on o.object_id = p.object_id where o.TYPE = 'u' and p.data_compression = 0 UNION ALL SELECT distinct rows,SCHEMA_NAME(schema_id) as SchemaName, Name AS TableName,'Index' AS ObjectType,2 AS ExecutionOrder,'ALTER INDEX ALL ON [' + SCHEMA_NAME(schema_id) + '].[' + NAME + '] REBUILD PARTITION = ALL WITH (MAXDOP=1,ONLINE=ON,DATA_COMPRESSION = PAGE);' AS [SQLCommand] FROM sys.objects o inner join sys.partitions p on o.object_id = p.object_id where o.TYPE = 'u' and p.data_compression = 0 order by SCHEMA_NAME(schema_id),Name,ExecutionOrder
No comments:
Post a Comment