인덱스 옵션 설정
인덱스를 디자인, 작성 또는 수정할 경우 여러 가지 인덱스 옵션을 사용할 수 있습니다. 이러한 옵션은 처음 인덱스를 만들 때 또는 인덱스를 다시 만들 때 지정할 수 있습니다. 또한 일부 인덱스 옵션은 언제든지 ALTER INDEX 문의 SET 절을 사용하여 설정할 수 있습니다.
인덱스 옵션 |
설명 |
메타데이터에 저장되는 설정 |
관련 항목 |
---|---|---|---|
PAD_INDEX |
인덱스를 만드는 동안 중간 수준 페이지에서 사용 가능한 공간의 백분율을 설정합니다. |
예 |
|
FILLFACTOR |
인덱스를 만드는 동안 각 인덱스 페이지의 리프 수준에서 사용 가능한 공간의 백분율을 설정합니다. |
예 |
|
SORT_IN_TEMPDB |
인덱스를 만드는 동안 생성된 중간 정렬 결과가 저장되는 위치를 결정합니다. ON으로 설정하면 정렬 결과가 tempdb에 저장됩니다. OFF로 설정하면 결과 인덱스가 저장되는 파일 그룹 또는 파티션 구성표에 정렬 결과가 저장됩니다.
참고
정렬 작업이 필요하지 않거나 메모리에서 정렬을 수행할 수 있으면 SORT_IN_TEMPDB가 무시됩니다.
|
아니요 |
|
IGNORE_DUP_KEY |
삽입 작업에서 고유 인덱스에 중복된 키 값을 삽입하려는 경우에 대한 오류 응답을 지정합니다. IGNORE_DUP_KEY 옵션은 인덱스가 생성되거나 다시 작성된 후에 수행되는 작업을 삽입하는 데만 적용됩니다. 기본값은 OFF입니다. |
예 |
|
STATISTICS_NORECOMPUTE |
오래된 인덱스 통계를 자동으로 다시 계산할 것인지 여부를 지정합니다. |
예 |
|
DROP_EXISTING |
기존 인덱스를 삭제하고 다시 만들도록 지정합니다. |
아니요 |
|
ONLINE |
인덱스 작업 동안 기본 테이블이나 클러스터형 인덱스 데이터 및 연관된 모든 비클러스터형 인덱스에 여러 사용자가 동시에 액세스할 수 있는지 여부를 결정합니다.
참고
온라인 인덱스 작업은 SQL Server Enterprise, Developer 및 Evaluation Edition에서만 사용할 수 있습니다.
|
아니요 |
|
ALLOW_ROW_LOCKS |
인덱스 데이터에 액세스할 때 행 잠금이 사용되는지 여부를 결정합니다. |
예 |
|
ALLOW_PAGE_LOCKS |
인덱스 데이터에 액세스할 때 페이지 잠금이 사용되는지 여부를 결정합니다. |
예 |
|
MAXDOP |
단일 인덱스 문을 실행할 때 쿼리 프로세서에서 사용할 수 있는 최대 프로세서 수를 설정합니다. 현재 시스템 작업 부하에 따라 더 적은 수의 프로세서를 사용할 수 있습니다.
참고
병렬 인덱스 작업은 SQL Server Enterprise, Developer 및 Evaluation Edition에서만 사용할 수 있습니다.
|
아니요 |
|
DATA_COMPRESSION |
지정된 테이블, 파티션 번호 또는 파티션 범위에 대한 데이터 압축 옵션을 지정합니다. 옵션은 NONE, ROW 및 PAGE입니다. |
예 |
인덱스에서 옵션을 설정하려면
다시 작성하지 않고 옵션 설정
ALTER INDEX 문에서 SET 절을 사용하면 인덱스를 다시 작성하지 않고 다음 인덱스 옵션을 설정할 수 있습니다.
ALLOW_PAGE_LOCKS
ALLOW_ROW_LOCKS
IGNORE_DUP_KEY
STATISTICS_NORECOMPUTE
이러한 옵션은 인덱스에 즉시 적용됩니다. FILLFACTOR, ONLINE 등의 다른 인덱스 옵션은 인덱스를 만들거나 다시 작성할 때만 지정할 수 있습니다.
인덱스 옵션 설정 보기
일부 인덱스 옵션 값은 메타데이터에 저장되지 않습니다. 메타데이터에 저장된 값은 해당 카탈로그 뷰에서 볼 수 있습니다. 기존 인덱스의 현재 옵션 설정을 확인하려면 sys.indexes 카탈로그 뷰를 사용합니다. STATISTICS_NORECOMPUTE의 현재 값을 확인하려면 sys.stats 카탈로그 뷰를 사용합니다. 자세한 내용은 인덱스 정보 보기를 참조하십시오.
예
다음 예에서는 Production.Product 테이블의 AK_Product_ProductNumber 인덱스에 대해 ALLOW_ROW_LOCKS 및 IGNORE_DUP_KEY 옵션을 설정합니다.
USE AdventureWorks;
GO
--Verify the current values for these options.
SELECT allow_row_locks, ignore_dup_key
FROM sys.indexes
WHERE name = N'AK_Product_ProductNumber';
GO
--Set the ALLOW_ROW_LOCKS option OFF and the IGNORE_DUP_KEY option ON.
ALTER INDEX AK_Product_ProductNumber
ON Production.Product
SET (ALLOW_ROW_LOCKS = OFF, IGNORE_DUP_KEY = ON);
GO
--Verify the new values for these options.
SELECT allow_row_locks, ignore_dup_key
FROM sys.indexes
WHERE name = N'AK_Product_ProductNumber';
GO