비클러스터형 인덱스 만들기

SQL Server 2012에서 SQL Server Management Studio 또는 Transact-SQL을 사용하여 비클러스터형 인덱스를 만들 수 있습니다. 비클러스터형 인덱스는 하나 이상의 선택된 열을 다시 정렬하는 테이블에 저장된 데이터와 구별되는 인덱스 구조입니다. 비클러스터형 인덱스는 기본 테이블을 검색할 때보다 빠르게 데이터를 찾는 데 도움이 될 수 있습니다. 비클러스터형 인덱스의 데이터가 쿼리에 대한 완전한 대답이 되는 경우도 있지만, 비클러스터형 인덱스에서 데이터베이스 엔진을 기본 테이블의 행으로 연결할 수도 있습니다. 일반적으로 비클러스터형 인덱스는 클러스터형 인덱스를 적용할 수 없고 자주 사용되는 쿼리의 성능을 개선하거나, 클러스터형 인덱스(힙이라고 함) 없이 테이블에서 행을 찾기 위해 만듭니다. 테이블 또는 인덱싱된 뷰에 비클러스터형 인덱스를 여러 개 만들 수 있습니다.

항목 내용

  • 시작하기 전에:

    일반적인 구현 방법

    보안

  • 비클러스터형 인덱스를 만들려면:

    SQL Server Management Studio

    Transact-SQL

시작하기 전에

일반적인 구현 방법

비클러스터형 인덱스는 다음 방법으로 구현합니다.

  • UNIQUE 제약 조건

    UNIQUE 제약 조건을 만들면 고유 비클러스터형 인덱스가 생성되어 기본적으로 UNIQUE 제약 조건을 적용합니다. 테이블에 클러스터형 인덱스가 없는 경우 고유 클러스터형 인덱스를 지정할 수 있습니다. 자세한 내용은 UNIQUE 제약 조건 및 CHECK 제약 조건을 참조하십시오.

  • 제약 조건의 영향을 받지 않는 인덱스

    기본적으로 클러스터링 옵션을 지정하지 않으면 비클러스터형 인덱스가 생성됩니다. 각 테이블에서 만들 수 있는 최대 비클러스터형 인덱스 수는 999개입니다. 여기에는 PRIMARY KEY 또는 UNIQUE 제약 조건을 사용하여 생성된 인덱스가 포함되지만 XML 인덱스는 포함되지 않습니다.

  • 인덱싱된 뷰의 비클러스터형 인덱스

    뷰에 클러스터형 고유 인덱스를 만든 후 비클러스터형 인덱스를 만들 수 있습니다. 자세한 내용은 인덱싱된 뷰 만들기를 참조하십시오.

보안

사용 권한

테이블이나 뷰에 대한 ALTER 권한이 필요합니다. 사용자는 sysadmin 고정 서버 역할의 멤버 또는 db_ddladmindb_owner 고정 데이터베이스 역할의 멤버여야 합니다.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[Top]

SQL Server Management Studio 사용

테이블 디자이너를 사용하여 비클러스터형 인덱스를 만들려면

  1. 개체 탐색기에서 비클러스터형 인덱스를 만들 테이블이 포함된 데이터베이스를 확장합니다.

  2. 테이블 폴더를 확장합니다.

  3. 비클러스터형 인덱스를 만들 테이블을 마우스 오른쪽 단추로 클릭하고 디자인을 선택합니다.

  4. 테이블 디자이너 메뉴에서 인덱스/키를 클릭합니다.

  5. 인덱스/키 대화 상자에서 추가를 클릭합니다.

  6. 선택한 기본/고유 키 또는 인덱스 입력란에서 새 인덱스를 선택합니다.

  7. 표에서 CLUSTERED로 만들기를 선택하고 속성 오른쪽에 있는 드롭다운 목록에서 아니요를 선택합니다.

  8. 닫기를 클릭합니다.

  9. 파일 메뉴에서 table_name 저장을 클릭합니다.

개체 탐색기를 사용하여 비클러스터형 인덱스를 만들려면

  1. 개체 탐색기에서 비클러스터형 인덱스를 만들 테이블이 포함된 데이터베이스를 확장합니다.

  2. 테이블 폴더를 확장합니다.

  3. 비클러스터형 인덱스를 만들 테이블을 확장합니다.

  4. 인덱스 폴더를 마우스 오른쪽 단추로 클릭하고 새 인덱스를 가리킨 다음 **비클러스터형 인덱스...**를 선택합니다.

  5. 새 인덱스 대화 상자의 일반 페이지에서 인덱스 이름 상자에 새 인덱스의 이름을 입력합니다.

  6. 인덱스 키 열 아래에서 **추가...**를 클릭합니다.

  7. table_name에서 열 선택 대화 상자에서 비클러스터형 인덱스에 추가할 테이블 열의 확인란을 선택합니다.

  8. 확인을 클릭합니다.

  9. 새 인덱스 대화 상자에서 확인을 클릭합니다.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[Top]

Transact-SQL 사용

테이블에 비클러스터형 인덱스를 만들려면

  1. 개체 탐색기에서 데이터베이스 엔진 인스턴스에 연결합니다.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.

    USE AdventureWorks2012;
    GO
    -- Find an existing index named IX_ProductVendor_VendorID and delete it if found. 
    IF EXISTS (SELECT name FROM sys.indexes
                WHERE name = N'IX_ProductVendor_VendorID') 
        DROP INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor; 
    GO
    -- Create a nonclustered index called IX_ProductVendor_VendorID 
    -- on the Purchasing.ProductVendor table using the BusinessEntityID column. 
    CREATE NONCLUSTERED INDEX IX_ProductVendor_VendorID 
        ON Purchasing.ProductVendor (BusinessEntityID); 
    GO
    

자세한 내용은 CREATE INDEX(Transact-SQL)를 참조하십시오.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[Top]