MSSQL, 비클러스터형 인덱스 만드는 방법
- Database
- 2023. 4. 10.
마이크로소프트 SQL Server에서 비클러스트형 인덱스를 생성하려면 CREATE NONCLUSTERED INDEX 구문을 사용하면 됩니다. 비클러스터드 인덱스는 테이블의 데이터를 정렬된 순서와 별개로 저장되는 인덱스로 쿼리 성능을 향상시키기 위해 사용합니다.
CREATE NONCLUSTERED INDEX
기본 구문은 아래와 같습니다.
CREATE NONCLUSTERED INDEX index_name
ON table_name (column1, column2, ...)
- index_name : 생성할 비클러스터드 인덱스의 고유한 이름입니다.
- table_name : 인덱스를 생성할 테이블의 이름입니다.
- column1, column2, ... : 인덱스 키 열로 사용할 테이블의 컬럼입니다. 이 컬럼은 인덱스 정렬 순서를 결정하며, 쿼리 실행 시 검색 조건을 최적화하는데 사용됩니다.
이런 방식으로 WHERE 절과 JOIN 조건에서 사용되는 열에 대한 검색과 정렬 작업이 빠르게 수행됩니다.
예시 1) 단일 컬럼 인덱스 생성
CREATE NONCLUSTERED INDEX IX_Employees_LastName
ON Employees (LastName);
이 예시에서는 Employees 테이블의 LastName 컬럼에 대한 비클러스터형 인덱스를 생성합니다. 인덱스 이름은 IX_Employees_LastName입니다. 일반적으로 인덱스 이름 앞에는 인덱스라는 표시로 IX, ix 등을 붙입니다.
이렇게 인덱스를 생성하면 아래와 같은 쿼리를 실행 시 더 빠른 결과를 얻을 수 있습니다.
SELECT * FROM Employees WHERE LastName = 'Smith';
예시 2) 다중 컬럼 인덱스 생성
CREATE NONCLUSTERED INDEX IX_Orders_CustomerID_OrderDate
ON Orders (CustomerID, OrderDate);
이 예제에서는 Orders 테이블의 CustomerID와 OrderDate 컬럼을 사용하여 복합 비클러스터드 인덱스를 생성합니다. 인덱스의 이름은 IX_Orders_CustomerID_OrderDate입니다.
이렇게 인덱스를 생성하면 아래와 같은 쿼리를 실행 시 더 빠른 결과를 얻을 수 있습니다.
SELECT * FROM Orders WHERE CustomerID = 1 AND OrderDate >= '2023-01-01';
반응형
'Database' 카테고리의 다른 글
com.mysql.cj.jdbc.Driver와 com.mysql.jdbc.Driver 차이 (0) | 2023.04.11 |
---|---|
JDBC란? (ojdbc, mysql-connector, mssql-jdbc) (0) | 2023.04.11 |
MSSQL, nvarchar와 nchar 차이 (0) | 2023.04.10 |
MSSQL, nvarchar(max) 사용하는 이유 (0) | 2023.04.10 |
오라클, 소유자가 아닌 테이블 조회 (스키마) (0) | 2023.04.06 |