인덱스 옵션 설정
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
이 항목에서는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server에서 인덱스의 속성을 수정하는 방법에 대해 설명합니다.
문서 내용
시작하기 전 주의 사항:
인덱스의 속성을 수정하려면 이용할 것:
시작하기 전에
제한 사항
- ALTER INDEX 문의 SET 절을 사용하여 인덱스로 즉시 적용되는 옵션은 ALLOW_PAGE_LOCKS, ALLOW_ROW_LOCKS, OPTIMIZE_FOR_SEQUENTIAL_KEY, IGNORE_DUP_KEY 및 STATISTICS_NORECOMPUTE입니다.
- ALTER INDEX REBUILD 또는 CREATE INDEX WITH DROP_EXISTING을 사용하여 인덱스 다시 작성 시 설정할 수 있는 옵션은 PAD_INDEX, FILLFACTOR, SORT_IN_TEMPDB, IGNORE_DUP_KEY, STATISTICS_NORECOMPUTE, ONLINE, ALLOW_ROW_LOCKS, ALLOW_PAGE_LOCKS, MAXDOP 및 DROP_EXISTING(CREATE INDEX만)입니다.
보안
사용 권한
테이블이나 뷰에 대한 ALTER 권한이 필요합니다.
SQL Server Management Studio 사용
테이블 디자이너에서 인덱스의 속성을 수정하려면
- 개체 탐색기에서 더하기 기호를 클릭하여 인덱스의 속성을 수정할 테이블이 포함된 데이터베이스를 펼칩니다.
- 더하기 기호를 클릭하여 테이블 폴더를 확장합니다.
- 인덱스 속성을 수정할 테이블을 마우스 오른쪽 단추로 클릭하고 디자인을 선택합니다.
- 테이블 디자이너 메뉴에서 인덱스/키를 클릭합니다.
- 수정할 인덱스를 선택합니다. 해당 속성이 주 표에 표시됩니다.
- 인덱스 사용자 지정을 위해 모든 속성의 설정을 변경합니다.
- 닫기를 클릭합니다.
- 파일 메뉴에서 table_name저장을 선택합니다.
개체 탐색기 인덱스의 속성을 수정하려면
- 개체 탐색기에서 더하기 기호를 클릭하여 인덱스의 속성을 수정할 테이블이 포함된 데이터베이스를 펼칩니다.
- 더하기 기호를 클릭하여 테이블 폴더를 확장합니다.
- 더하기 기호를 클릭하여 인덱스 속성을 수정할 테이블을 확장합니다.
- 더하기 기호를 클릭하여 인덱스 폴더를 확장합니다.
- 속성을 수정할 인덱스를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
- 페이지 선택아래에서 옵션을 선택합니다.
- 인덱스 사용자 지정을 위해 모든 속성의 설정을 변경합니다.
- 인덱스 열을 추가 또는 제거하거나 그 위치를 변경하려면 인덱스 속성 - index_name 대화 상자에서 일반 페이지를 선택합니다. 자세한 정보는 인덱스 속성 F1 도움말을 참조하세요.
Transact-SQL 사용
테이블에 있는 모든 인덱스의 속성을 보려면
다음 예는 AdventureWorks 데이터베이스의 테이블에 있는 모든 인덱스의 속성을 보여줍니다.
SELECT i.name AS index_name
, i.type_desc
, i.is_unique
, ds.type_desc AS filegroup_or_partition_scheme
, ds.name AS filegroup_or_partition_scheme_name
, i.ignore_dup_key
, i.is_primary_key
, i.is_unique_constraint
, i.fill_factor
, i.is_padded
, i.is_disabled
, i.allow_row_locks
, i.allow_page_locks
, i.has_filter
, i.filter_definition
FROM sys.indexes AS i
INNER JOIN sys.data_spaces AS ds
ON i.data_space_id = ds.data_space_id
WHERE is_hypothetical = 0 AND i.index_id <> 0
AND i.object_id = OBJECT_ID('HumanResources.Employee')
;
인덱스의 속성을 설정하려면
다음 예제에서는 AdventureWorks 데이터베이스에서 인덱스의 속성을 설정합니다.
ALTER INDEX AK_SalesOrderHeader_SalesOrderNumber ON
Sales.SalesOrderHeader
SET (
STATISTICS_NORECOMPUTE = ON,
IGNORE_DUP_KEY = ON,
ALLOW_PAGE_LOCKS = ON
)
;
ALTER INDEX ALL ON Production.Product
REBUILD WITH
(
FILLFACTOR = 80
, SORT_IN_TEMPDB = ON
, STATISTICS_NORECOMPUTE = ON
)
;
자세한 내용은 ALTER INDEX(Transact-SQL)를 참조하세요.