CREATE INDEX(SQL Server Compact)

지정된 테이블에 인덱스를 만듭니다. 테이블에 데이터가 생성되기 전에 인덱스를 만들 수 있습니다.

구문

CREATE [UNIQUE] [NONCLUSTERED] INDEX index_name ON table_name (column_name [ASC|DESC][,…n])
WITH (STATISTICS_NORECOMPUTE = { ON | OFF })]

인수

용어

정의

UNIQUE

테이블에 고유 인덱스를 만듭니다. 고유 인덱스는 인덱스 값이 같은 행은 허용하지 않는 인덱스입니다.

SQL Server Compact에서는 데이터가 이미 있는 경우 인덱스를 만들 때 중복값을 확인하며 INSERT 또는 UPDATE 문으로 데이터가 추가될 때마다 확인을 수행합니다. 중복값은 고유 인덱스가 열에 만들어지기 전에 반환해야 합니다. 중복 키 값이 있는 경우 CREATE INDEX 문이 취소되고 오류가 반환됩니다. 고유 인덱스는 NOT NULL로 정의된 열에만 만들 수 있습니다.

고유 인덱스가 있는 경우 중복 키 값을 생성하는 UPDATE 또는 INSERT 문은 롤백되며 SQL Server Compact에서 오류를 반환합니다. UPDATE 또는 INSERT 문이 많은 행을 변경할 수 있지만 중복은 하나만 발생합니다.

NONCLUSTERED

테이블의 논리적 순서를 지정하는 인덱스를 만듭니다. 비클러스터형 인덱스에서는 데이터 행의 물리적 순서가 인덱싱된 순서와 무관합니다. 이 유형이 지원되는 유일한 인덱스 유형입니다.  기본값은 NONCLUSTERED입니다.

index_name

인덱스의 이름을 지정합니다. 인덱스 이름은 테이블 내에서 고유해야 하지만 데이터베이스 내에서는 고유하지 않아도 됩니다.

table_name

인덱스를 만들 테이블의 이름을 지정합니다.

이 테이블에는 열 또는 인덱싱할 열이 포함되어 있습니다.

column name

인덱스를 적용할 열. 지정된 열에서 결합된 값으로 복합 인덱스를 만들려면 열 이름을 두 개 이상 지정합니다. 복합 인덱스에 포함된 열을 정렬 우선 순위에 따라 테이블 다음의 괄호 안에 나열합니다.

참고참고
ntext 또는 image 데이터 형식으로 구성된 열은 인덱스 열로 지정할 수 없습니다.

ASC | DESC ]

특정 인덱스 열을 오름차순(ASC)으로 정렬할지 내림차순(DSC)으로 정렬할지 결정합니다. 기본값은 ASC입니다.

n

여러 열이 특정 인덱스로 지정될 수 있음을 나타내는 자리 표시자입니다. 인덱스에 포함될 수 있는 최대 열 개수는 16개입니다.

STATISTICS_NORECOMPUTE

배포 통계를 다시 계산할지 여부를 지정합니다. 기본값은 OFF입니다.

  • ON

    오래된 통계는 자동으로 다시 계산되지 않습니다.

  • OFF

    자동 통계 업데이트가 설정됩니다.

자동 통계 업데이트를 복원하려면 STATISTICS_NORECOMPUTE를 OFF로 설정하거나 NORECOMPUTE 절 없이 UPDATE STATISTICS를 실행합니다.

중요 정보중요
배포 통계의 자동 재계산 기능을 해제하면 쿼리 최적화 프로그램에서 해당 테이블과 관련된 쿼리에 맞는 최적의 실행 계획을 선택하지 못할 수 있습니다.

다음 예에서는 MyCustomers 테이블에 고유 인덱스를 만듭니다.

CREATE TABLE MyCustomers (CustID int, CompanyName nvarchar(50));
CREATE UNIQUE INDEX idxCustId ON MyCustomers (CustId);

참고 항목

개념

쿼리 성능 튜닝(SQL Server Compact)

데이터베이스 개체