연구개발/DBA

인덱스,index 관련쿼리

HEAD1TON 2010. 6. 20. 07:13

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')