db/mssql

mssql 인덱스

C/H 2006. 9. 22. 02:58

mssql 인덱스생성 문법

CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED]
	INDEX index_name ON table (column [,...n])
		[WITH
		[PAD_INDEX]
		[[,] FILLFACTOR = fillfactor]
		[[,] IGNORE_DUP_KEY]
		[[,] DROP_EXISTING]
		[[,] STATISTICS_NORECOMPUTE]
	]
	[ON filegroup]

인덱스 생성

create clustered index ix_kkaok on kkaok(seq)
width DROP_EXISTING, FILLFACTOR = 80 

kkaok 테이블에서 seq 칼럼에 대해 ix_kkaok라는 클러스터드 인덱스를 생성하라는 명령문이다.
DROP_EXISTING 옵션은 기존에 같은 이름의 인덱스가 존재한다면 삭제하고 생성하라는 의미이며 Fillfactor 값은 명시하지 않으면 기본적으로 100% 페이지에 채워 넣으라는 뜻이다. 지금은 80% 채워 넣고 20% 여유공간을 가지라는 의미이다.

결합 인덱스 생성

create index ix_kkaok2 on kkaok(seq,re_step) 

seq와 re_step 두 개의 칼럼에 인덱스를 생성하였다. 각각의 칼럼에 대해 내림차순 정렬과 오름차순 정렬 옵션을 줄 수 있지만 mssql 7.0에서는 내림차순 정렬을 지원하지 않는다.

인덱스 보기

exec sp_helpindex '테이블이름' 

인덱스 제거

drop index 'table.index'[,...n] 

인덱스 삭제 예제

drop index kkaok.ix_kkaok 

제약키의 변경

primary key는 인덱스가 아니고 제약키이다. 따라서 인덱스를 삭제하는 방법으로 삭제 할 수는 없다. 제약키는 다음의 방법으로 삭제 또는 변경 할 수 있다.

제약키 삭제

alter table kkaok drop constraint PK_kkaok 

제약키 추가변경

alter table kkaok add constraint PK_kkaok primary key(seq) 
반응형

'db > mssql' 카테고리의 다른 글

mssql server 2014, 2016 timezone  (0) 2023.12.26
MSSQL inet_ntoa, inet_aton  (0) 2012.02.14
ms-sql 일반정보 질의 query  (0) 2008.12.29
[MSSQL] Identity 자동 증가함수  (0) 2008.10.16
리스트 페이징(6가지)  (0) 2006.10.20