다음을 통해 공유


인덱스 옵션 설정

인덱스를 디자인, 작성 또는 수정할 경우 여러 가지 인덱스 옵션을 사용할 수 있습니다. 이러한 옵션은 처음 인덱스를 만들 때 또는 인덱스를 다시 만들 때 지정할 수 있습니다. 또한 일부 인덱스 옵션은 언제든지 ALTER INDEX 문의 SET 절을 사용하여 설정할 수 있습니다.

인덱스 옵션

설명

메타데이터에 저장되는 설정

관련 항목

PAD_INDEX

인덱스를 만드는 동안 중간 수준 페이지에서 사용 가능한 공간의 백분율을 설정합니다.

채우기 비율

FILLFACTOR

인덱스를 만드는 동안 각 인덱스 페이지의 리프 수준에서 사용 가능한 공간의 백분율을 설정합니다.

채우기 비율

SORT_IN_TEMPDB

인덱스를 만드는 동안 생성된 중간 정렬 결과가 저장되는 위치를 결정합니다.

ON으로 설정하면 정렬 결과가 tempdb에 저장됩니다. OFF로 설정하면 결과 인덱스가 저장되는 파일 그룹 또는 파티션 구성표에 정렬 결과가 저장됩니다.

참고참고
정렬 작업이 필요하지 않거나 메모리에서 정렬을 수행할 수 있으면 SORT_IN_TEMPDB가 무시됩니다.

아니요

tempdb 및 인덱스 만들기

IGNORE_DUP_KEY

삽입 작업에서 고유 인덱스에 중복된 키 값을 삽입하려는 경우에 대한 오류 응답을 지정합니다. IGNORE_DUP_KEY 옵션은 인덱스가 생성되거나 다시 작성된 후에 수행되는 작업을 삽입하는 데만 적용됩니다. 기본값은 OFF입니다.

CREATE INDEX

STATISTICS_NORECOMPUTE

오래된 인덱스 통계를 자동으로 다시 계산할 것인지 여부를 지정합니다.

인덱스 통계

DROP_EXISTING

기존 인덱스를 삭제하고 다시 만들도록 지정합니다.

아니요

인덱스 다시 구성 및 다시 작성

ONLINE

인덱스 작업 동안 기본 테이블이나 클러스터형 인덱스 데이터 및 연관된 모든 비클러스터형 인덱스에 여러 사용자가 동시에 액세스할 수 있는지 여부를 결정합니다.

참고참고
온라인 인덱스 작업은 SQL Server Enterprise, Developer 및 Evaluation Edition에서만 사용할 수 있습니다.

아니요

온라인 인덱스 작업 수행

ALLOW_ROW_LOCKS

인덱스 데이터에 액세스할 때 행 잠금이 사용되는지 여부를 결정합니다.

CREATE INDEX

인덱스 잠금 사용자 지정

ALLOW_PAGE_LOCKS

인덱스 데이터에 액세스할 때 페이지 잠금이 사용되는지 여부를 결정합니다.

CREATE INDEX

인덱스 잠금 사용자 지정

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