MSSQL 인덱스 관련
분류없음 |
2011/01/29 16:41
인덱스 생성 권장
- Where 절에서 자주 사용되는 열
- FK로 사용되는 열(PK는 자동으로 클러스터형 인덱스가 생성되나 FK는 자동으로 생성되지 않음)
- Join 에 자주 사요되는 열
인덱스 생성 비권장
- 데이터 중복도가 높은 열(분포도가 10% 넘는 경우)
- Insert, Delete, Update가 빈번하게 일어나는 경우
- 대용량 데이터가 계속해서 입력되는 시스템의 경우 클러스터형 인덱스가 구성되어 있을 경우 데이터가 입력되는 즉시 정렬이 계속 수행되고 페이지 분할이 끊임없이 일어날 수 있어 시스템의 성능에 큰 문제가 발생할 수 있으므로 PK 생성 시 Nonclustered 인덱스로 생성해야 함
ex ) create table xxx ( userID char(8) not null nonclustered primary key, .....)
포괄열 인덱스
Index with Included Columns를 사용할 경우 인덱스 길이가 900바이트를 넘으면 안됨.
select에서는 성능이 확보될 수 있으나 I/D/U 작업에서 속도는 늦어진다.
필터링된 인덱스
created nonclustered index idx_filter on 테이블명( 컬럼명)
where 컬럼명 is not null
