/* * Scripts to remove data you don't need here */ /* * Now let's clean that b up! */ DECLARE @DBName VarChar(25) SET @DBName = 'DBName' DBCC CLEANTABLE(@DBName, 'dbo.Table1') DBCC CLEANTABLE(@DBName, 'dbo.Table2') Print 'Selecting Index Fragmentation in the database.' SELECT DB_NAME(DPS.DATABASE_ID) AS [DatabaseName] ,OBJECT_NAME(DPS.OBJECT_ID) AS TableName ,SI.NAME AS IndexName ,DPS.INDEX_TYPE_DESC AS IndexType ,DPS.AVG_FRAGMENTATION_IN_PERCENT AS AvgPageFragmentation ,DPS.PAGE_COUNT AS PageCounts FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, NULL) DPS --N'LIMITED') DPS INNER JOIN sysindexes SI ON DPS.OBJECT_ID = SI.ID AND DPS.INDEX_ID = SI.INDID ORDER BY DPS.avg_fragmentation_in_percent DESC GO Print 'Rebuilding indexes on every table in the database.' EXEC sp_MSforeachtable @command1="print 'Rebuilding indexes for ?' ALTER INDEX ALL ON ? REBUILD WITH (FILLFACTOR = 90)" GO Print 'Reorganizing indexes on every table in the database.' EXEC sp_MSforeachtable @command1="print 'Reorganizing indexes for ?' ALTER INDEX ALL ON ? REORGANIZE" GO --EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?', ' ', 80)" --GO EXEC sp_updatestats GO DBCC SHRINKFILE('DBName_Log',1) DBCC SHRINKFILE(@DBName,1) DBCC SHRINKDATABASE(@DBName,1)