인덱스,index 관련쿼리
2K0
-- 전체 인덱스 조각화 확인
/*
DBCC SHOWCONTIG('테이블명', '인덱스명') : 논리적 스캔조각화, 페이지밀도. 2가지 항목을 봐라
*/
DBCC SHOWCONTIG('tbl_tmp','1') -- 특정 테이블, 특정 인덱스
DBCC SHOWCONTIG('tbl_tmp','1') WITH TABLERESULTS, ALL_INDEXES -- 특정 테이블 모든 인덱스
참고 : 커서를 이용해 전체 테이블 조각화 확인하는 스크립트 - http://cafe.naver.com/sloteadyfun/485
-- 재생성
CREATE CLUSTERED INDEX cl_deptno_title_sal ON EMP (DEPTNO ASC, TITLE DESC, SAL DESC )
WITH DROP_EXISTING ON HR_FILEGROUP
-- 재생성
DBCC DBREINDEX ('tbl_tmp','cl_tmp', 80)
-- 재구성
DBCC INDEXDEFRAG ('tmp_db','tbl_tmp','cl_tmp')
2K5
-- 전체 인덱스 조각화 확인, avg_fragmentation_in_percent 컬럼 수치가 클수록 나쁜 영향
/*
sys.dm_db_index_physical_stats
(
{ database_id | NULL } /* NULL: 서버내의 모든 데이터베이스 */
, { object_id | NULL } / * NULL: 해당 데이터베이스내의 모든 오브젝트 */
, { index_id | NULL | 0 } /* NULL: 해당 테이블의 모든 인덱스 */
, { partition_number | NULL } /* NULL: 해당 오브젝트의 모든 인덱스 */
, { mode | NULL | DEFAULT } /* NULL: LIMIT */
)
*/
select * from sys.dm_db_index_physical_stats (db_id('tmp_db'), object_id('tbl_tmp'), null, null, null)
-- 재구성
ALTER INDEX cl_tmp ON dbo.tbl_tmp REBUILD;
-- 재성성ALTER INDEX cl_tmp ON dbo.tbl_tmp REORGANIZE ;
-- 인덱스 크기정보
sp_MSIndexspace @tablename [,@indexname]
-- 인덱스 depth 확인
SELECT
INDEXPROPERTY
(object_id('titles'),
'UPKCL_titleidind',
'IndexDepth')