• 북마크
  • 접속자 3
한고요

꿀팁

[SQL] INDEX 최적화 돌리는방법

본문


DECLARE @i int, @sql varchar(1000)

DECLARE @tablename varchar(1000),@ownerName varchar(1000)

SET @i = 1

DECLARE DB_Cursor CURSOR FOR

SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_SCHEMA, TABLE_NAME

OPEN DB_Cursor

FETCH NEXT FROM DB_Cursor

INTO @ownerName, @tablename

WHILE @@FETCH_STATUS = 0

BEGIN

SET @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 + 1

FETCH NEXT FROM DB_Cursor

INTO @ownerName, @tablename

END

CLOSE DB_Cursor

DEALLOCATE DB_Cursor

상단 쿼리를 SQL Query창에 넣고 F5번을 누르면 돌아가면서 최적화를 합니다.


테이블수와 용량이 클수록 오래걸립니다.



예를들어서 ReportServer DB (기본DB)를 인덱스 최적화한다고하면

552a52ec70cffa3d5974b25778c42c73_1714526354_4721.png
 

이런 결과가 나옵니다 참고바랍니다. 

0 0
로그인 후 추천 또는 비추천하실 수 있습니다.

댓글목록 0

등록된 댓글이 없습니다.