본문 바로가기

데이터베이스

Custom Clustered Index

이번에는 사용자가 정의한 클러스터 인덱스를 보자. Clustered Index와 같지만 사용자가 인덱스를 만드는데 정의되는 컬럼을 정한다는 것에서 그냥 Custom이라고 이름을 붙였으니 기존 Clustered Index와 다른 건가? 하고 생각하지 않았으면 좋겠다. 

 

앞선 글에서 본 Student 테이블을 가지고 계속진행하겠다. 

 Create Table Student

(

    Stud_id int Primary Key,

    Name nvarchar(10) not null,

    Dept_Cd nvarchar(10) not null,

    Mobile_Num nvarchar(13) not null,

)

 

우선 Student 테이블에 있던 인덱스는 삭제를 하겠다. 

 

SELECT name   
FROM sys.key_constraints   
WHERE type = 'PK' AND OBJECT_NAME(parent_object_id) = N'Student';   
GO   

ALTER TABLE dbo.Student 
DROP CONSTRAINT PK__student__09AFA9097ECDECB3;    
GO   

DROP INDEX Student.PK__student__09AFA9097ECDECB3;

 

간단하게 SQL Server Studio Management를 이용하여 삭제해도 좋다.

 

개체탐색기 >> 테이블 >> Student >> 인덱스 >> 우클릭 >> 삭제 클릭 

 

이번에는 사용자 정의 클러스터 인덱스를 만들어 보자. 

 

CREATE CLUSTERED INDEX IX_tblStudent_Name_Dept_Cd

ON student(Name ASC, Dept_Cd DESC

 

위에서 만든 인덱스는 학생 이름을 오름차순으로 학과코드는 내림차순으로 정렬하여 만들어진다. 

어떤 인덱스가 하나 이상의 컬럼(속성)으로 만들어지면 Composite Index라 불려진다.

 

하나의 컬럼만으로도 사용자 클러스터 인덱스를 만들수 있으니 시간이 나면 간단히 위의 명령어를 수정하여 실행시켜 보면 좋겠다.  

'데이터베이스' 카테고리의 다른 글

반환 상태가 있는 저장 프로시저 사용  (0) 2020.06.02
Non clustered Index  (0) 2020.06.01
Clustered Index  (0) 2020.05.29
Convert 함수를 이용한 날짜 및 시간 스타일 변환  (0) 2020.05.28
Sql Server RAISERROR 2부  (0) 2020.05.26