조각상태 확인

DBCC SHOWCONTIG

 

데이터를 입력,수정,삭제를 하다보면 인덱스에 조각화가 일어난다.

조각화가 많아지면 성능이 느려진다.

 

그럼, 다시 정리를 해줘야지!!

 

인덱스를 다시 작성하는 방법에는

 

-. DBCC DBREINDEX

 

-. DBCC INDEXDEFRAG

 

-. ALTER INDEX ALL ON 테이블명 REBUILD WITH (PAD_INDEX = ON, FILLFACTOR = 90)


이 있다..

 

여기에서 속도도 가장 빠르고 효율적인것이..

 

MS-SQL 2005 이상에서 지원하는 아래의 쿼리다.

  

ALTER INDEX ALL ON 테이블명 REBUILD WITH (PAD_INDEX = ON, FILLFACTOR = 90)


  

테이블 하나씩 하나씩 언제하냐고??

 

한방에 해당 데이터베이스의 인덱스를 정리하는 방법을 알려 달라고???

 

해당 데이터베이스의 모든 테이블의 모든 인덱스를 재정리하는 쿼리다.

 

------------------------------------------------------------------------------------

 

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


 

[출처] [MS-SQL] 인덱스를 다시 정리하자(조각모음)|작성자 inno

'프로그램 > - Sql' 카테고리의 다른 글

Split사용자 함수  (0) 2011.11.14
MS SQL 중복값제거하기  (0) 2011.11.14
SQL서버 메모리사용  (0) 2011.07.05
[Coalesce] Text Sum  (0) 2011.07.05
FOR XML  (0) 2011.07.05