Clustered Index & Non-Clustered Index
테이블을 생성 후 Primary Key를 생성하면 기본적으로 Clutered Index로 지정이 됩니다.(클러스터형 인덱스가 없는 경우)
하지만, 데이터를 파악하고 인덱스를 걸면 가장 효율적인 컬럼을 클러스터 인덱스로 지정하는것을 권장합니다.
Clustered Index
- 해당 컬럼을 기준으로 정렬, 테이블당 1개씩만 허용
- Clustered Index가 적용된 컬롬은 CUD 작업이 진행될 경우 데이터의 정렬에 관여합니다.
- 되도록이면 UNIQUE 해야합니다. UNIQUE하지 않으면 안되는것이 아니라 UNIQUE하지 않는 경우 오버헤드가 발생하는 것을 인지해야합니다.
- SP_COLUMNS 명령을 이용해서 사용빈도(높음), 데이터길이(짧음), UNIQUE여부(되도록이면) 인 컬럼을 지정합니다.
- 목차를 보고 해당 페이지를 찾아 가는것이 아니라 바로 해당 페이지를 찾아가는 것입니다.
Non-Clustered Index
- 한 테이블에 여러개를 생성 할 수 있습니다. (최대 240개)
- 목차를 보고 해당 페이지를 찾아가는 형태의 검색 방식입니다
- 테이블에 대한 인덱스를 많이 만들면 테이블의 데이터가 변경될 경우 인덱스도 모두 적절하게 조정되어야 하므로 INSERT, UPDATE, DELETE 및 MERGE 문의 성능이 저하될 수 있습니다.
- 쿼리의 조건자 및 조인 조건에서 자주 사용되는 열에 대해 비클러스터형 인덱스를 만듭니다.
'DB > SQL Serveer(MS-SQL)' 카테고리의 다른 글
Table index Option (0) | 2021.07.07 |
---|---|
[MS-SQL] 날짜 형식(포맷) 변경 방법 (CONVERT) (0) | 2021.07.06 |
특정 테이블의 인덱스 찾기 (0) | 2018.02.21 |
대용량 SQL 파일을 실행하고자 할때 메모리 부족현상으로 인한 실패 (0) | 2018.02.07 |
SQL Server 2012 이하버전에서는 Sequence를 사용할 수 없습니다. (0) | 2016.11.18 |