작성일 : 2008년 02월 12일
작성자 : 최용수 (http://ariswear.com)
대상 : MS_SQLServer 2000, 2005
명령어 - DBCC DBREINDEX( TABLE_NAME, INDEX_NAME, FILL_FACTOR )
TABLE_NAME : 테이블 명칭 - String
INDEX_NAME : 인덱스 명칭 - '' (빈 스트링 전체 인덱스 재구성)
FILL_FACTOR : 채우기 비율 - % 단위 ( 즉 1~100 )
사용 예제 - DBCC DBREINDEX ( TBL_COM_MEMBER_INFO, '', 95 )
TIP. FILL_FACTOR 수치를 100으로 할 경우 페이지 분할이 발생 할 확율이 매우 높다. (Data 추가 입력시)
따라서 Table에 Data의 유동성을 감안해서 적절한 수치를 입력하는 것이 좋다.
명령어 - DBCC DBREINDEX( TABLE_NAME, INDEX_NAME, FILL_FACTOR )
TABLE_NAME : 테이블 명칭 - String
INDEX_NAME : 인덱스 명칭 - '' (빈 스트링 전체 인덱스 재구성)
FILL_FACTOR : 채우기 비율 - % 단위 ( 즉 1~100 )
사용 예제 - DBCC DBREINDEX ( TBL_COM_MEMBER_INFO, '', 95 )
TIP. FILL_FACTOR 수치를 100으로 할 경우 페이지 분할이 발생 할 확율이 매우 높다. (Data 추가 입력시)
따라서 Table에 Data의 유동성을 감안해서 적절한 수치를 입력하는 것이 좋다.
- 고려할 점 -
INDEX REBUILD 실행시 테이블 잠김(LOCK) 이 발생한다. 따라서 서비스 중인 시스템에서 실행할 때 주의한다.
단, SQLServer 2005 버전에서는 Table Lock으로 인한 문제점을 해결할 방법을 제공한다.
ALTER INDEX index_name ON table_name(field_name)
WITH REBUILD, FILLFACTOR = 수치 , ONLINE = ON , SORT_IN_TEMPDB = ON
ONLINE 옵션을 사용해서 Table Lock이 발생하지 않으면서 DBREINDEX를 실행 할 있다 .
INDEX REBUILD 실행시 테이블 잠김(LOCK) 이 발생한다. 따라서 서비스 중인 시스템에서 실행할 때 주의한다.
단, SQLServer 2005 버전에서는 Table Lock으로 인한 문제점을 해결할 방법을 제공한다.
ALTER INDEX index_name ON table_name(field_name)
WITH REBUILD, FILLFACTOR = 수치 , ONLINE = ON , SORT_IN_TEMPDB = ON
ONLINE 옵션을 사용해서 Table Lock이 발생하지 않으면서 DBREINDEX를 실행 할 있다 .

















