INDEX 최적화 돌리는방법
DECLARE @i int, @sql varchar(1000)DECLARE @tablename varchar(1000),@ownerName varchar(1000)SET @i = 1DECLARE DB_Cursor CURSOR FORSELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_SCHEMA, TABLE_NAMEOPEN DB_CursorFETCH NEXT FROM DB_CursorINTO @ownerName, @tablenameWHILE @@FETCH_STATUS = 0BEGINSET @sql = 'ALTER INDEX ALL ON ' + @ownerName + '.' + @tablename + ' REBUILD WITH (PAD_INDEX = ON, FILLFACTOR = 90) 'EXEC (@sql)PRINT CONVERT(VARCHAR, @i) + '__' + @ownerName + '.' + @tablename + '............ OK'SET @i = @i + 1FETCH NEXT FROM DB_CursorINTO @ownerName, @tablenameENDCLOSE DB_CursorDEALLOCATE DB_Cursor상단 쿼리를 SQL Query창에 넣고 F5번을 누르면 돌아가면서 최적화를 합니다.테이블수와 용량이 클수록 오래걸립니다.예를들어서 ReportServer DB (기본DB)를 인덱스 최적화한다고하면이런 결과가 나옵니다 참고바랍니다.
관리자