메뉴 건너뛰기

조회 수 74 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

SQL Server 테이블에 인덱스(INDEX)를 추가하는 방법을 보겠습니다.

테이블을 만드는 CREATE에 추가해 테이블 생성할 때 인덱스를 같이 설정하는 방법과 이미 만들어진 테이블에 인덱스를 추가하는 방법을 보겠습니다.

 

  인덱스 설정 하기

인덱스를 작성하는 쿼리문은 CREATE INDEX ~ON ~을 사용합니다.

 

기존에 생성된 테이블에 인덱스를 추가하는 방법은 아래 쿼리문은 다음과 같습니다.

 

-- 클러스터 인덱스 작성
CREATE CLUSTERED INDEX '인덱스 이름' ON '테이블 이름' ('컬럼 이름');

-- 넌클러스터 인덱스 작성
CREATE NONCLUSTERED INDEX '인덱스 이름' ON '테이블 이름' ('컬럼 이름');

 

예제를 통해 직접 사용방법을 확인하겠습니다.

먼저 테이블을 하나 생성하겠습니다.

테이블에는 PRIMARY KEY, UNIQUE KEY, INDEX는 설정하지 않겠습니다.

테이블 생성

-- 성적 테이블 작성
CREATE TABLE STUDENT_GRADE
(
	STUDENT_ID int NOT NULL,
	STUDENT_NAME nvarchar(20) NOT NULL,
	SCORE int NOT NULL,
) 

테이블 생성

 

데이터도 몇개 입력 하겠습니다.

INSERT INTO STUDENT_GRADE (STUDENT_ID, STUDENT_NAME, SCORE) VALUES (1, N'이름 1', 391)
INSERT INTO STUDENT_GRADE (STUDENT_ID, STUDENT_NAME, SCORE) VALUES (2, N'이름 2', 489)
INSERT INTO STUDENT_GRADE (STUDENT_ID, STUDENT_NAME, SCORE) VALUES (3, N'이름 3', 437)

 

화면에서도 볼 수 있듯이 인덱스가 없습니다.

이번에는 INDEX를 추가하겠습니다.

CREATE CLUSTERED INDEX '인덱스 이름' ON '테이블 이름' ('컬럼 이름');

CREATE CLUSTERED INDEX user__index__STU ON STUDENT_GRADE (STUDENT_ID);

인덱스 생성

 

인덱스가 추가된 것이 보입니다.

예제에서는 CLUSTERED INDEX로 실행하였습니다.

NONCLUSTERED INDEX로 실행 방법은 같습니다.

 

클러스터 인덱스(CLUSTERED INDEX)와 넌클러스터 인덱스(NONCLUSTERED INDEX)의 차이점은 아래를 참조해주세요.

 

이번에는 CREATE 문으로 테이블을 생성할 때 인덱스를 설정하는 방법을 보겠습니다.

 

이번에도 역시 PRIMARY KEY, UNIQUE KEY는 설정하지 않겠습니다.

테이블 생성 인덱스

CREATE TABLE STUDENT_GRADE
(
	STUDENT_ID int NOT NULL,
	STUDENT_NAME nvarchar(20) NOT NULL,
	SCORE int NOT NULL,
) ON [PRIMARY]
GO
CREATE CLUSTERED INDEX INDEX_STUDENT_GRADE ON STUDENT_GRADE
(
	STUDENT_ID
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

 

결과

테이블 생성 인덱스

 

테이블 생성과 동시에 인덱스도 설정되었습니다.

인덱스가 설정되었는지 쿼리로 확인하고 싶은 경우는 SP_HELPINDEX 사용합니다.

 

SP_HELPINDEX '테이블이름'

 

인덱스 확인 쿼리 예제

SP_HELPINDEX 'STUDENT_GRADE'

 

결과

인덱스 확인SP

 

  정리

테이블에 인덱스를 추가하는 방법을 확인했습니다.

CREATE 문으로 테이블을 생성할 때 인덱스를 지정해주는 것이 가장 좋지만, 부득이한 경우로 인덱스를 추가하지 못한 경우라도 나중에 CREATE INDEX ~ON ~ 문을 사용하여 인덱스를 추가할 수 있습니다.


List of Articles
번호 제목 날짜 조회 수
30 MSSQL EXISTS로 서브 쿼리 작성 방법 예제 file 2022.02.16 19
29 MSSQL IN 다중조건 사용 방법 2022.02.16 165
» MSSQL 테이블 작성 인덱스 생성 하기 file 2022.02.16 74
27 MSSQL CLUSTERED INDEX와 NONCLUSTERED INDEX 차이점 2022.02.16 17
26 MSSQL Primary Key 컬럼 속성 변경 안될때 해결 방법 file 2022.02.16 27
25 MSSQL 컬럼 추가, 변경, 삭제 ALTER 사용 방법 예제 file 2022.02.16 18
24 MSSQL 컬럼 중간에 추가하는 방법 file 2022.02.16 119
23 MSSQL RANK와 DENSE_RANK 랭크 함수 차이 예제 file 2022.02.16 12
22 MSSQL ROW_NUMBER로 성적 순위 설정 방법 예제 file 2022.02.16 5
21 MSSQL 성적 순위 설정 RANK 사용 방법 예제 file 2022.02.14 14
20 MSSQL 간단한 만나이 계산하기 DATEDIFF 사용 예제 file 2022.02.14 222
19 MSSQL 현재 시간 취득하는 여러 가지 방법 file 2022.02.14 15
18 MSSQL NULL값 변환 (NVL, ISNULL, CASE) 사용 방법 예 file 2022.02.14 151
17 MSSQL 공백값과 NULL값 동시에 체크 하는 방법 file 2022.02.14 850
16 MSSQL 앞에 숫자0 채우기 FORMAT 사용 2022.02.14 62
15 MSSQL 숫자 3자리 콤마 넣기 또는 삭제하기 2022.02.14 79
14 MSSQL MERGE사용 안하고 있으면 UPDATE 없으면 INSERT 하기 2022.02.14 57
13 MSSQL MERGE 테이블에 있으면 업데이트 없으면 추가 하기 2022.02.14 8
12 MSSQL 문자열에서 숫자 또는 문자만 추출하기 REPLACE, PATINDEX 2022.02.14 579
11 MSSQL 모든 테이블 사용하고 있는 용량 확인 방법 2022.02.14 46
Board Pagination Prev 1 2 Next
/ 2

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved