Language/SQL

[SQL] 인덱스 (Index) 란?

ye_ju 2022. 10. 24. 11:45
인덱스 (Index) 란?
  • 데이터를 검색할 때 좀 더 빠르게 검색하기 위해 사용
  • 인덱스는 SQL Server Performance 튜닝에 있어서 가장 기본적인 것
  • 돈 안들이고 성능을 향상 시키는 방법.

 

인덱스의 단점
  • 인덱스를 만드는데 많은 시간 소요
  • 많은 공간이 필요
  • 데이터를 수정(INSERT, DELECT, UPDATE)할 때 마다 인덱스도 변경되야 하므로 시간이 오래 걸림(특히, INSERT 작업의 경우 다른 작업보다 더 많은 시간 소요)

 

인덱스(Index) 생성 방법
CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED] INDEX [인덱스명]
ON [테이블명]([컬럼명])

 

생성된 인덱스 확인 방법
sp_helpindex [테이블명]

 

인덱스(Index) 생성
  • 사전 준비 – (테이블 생성 및 인덱스 확인)
CREATE TABLE hallym(
	cust_id CHAR(05) NOT NULL,
	cust_name VARCHAR(40) NOT NULL,
	phone CHAR(12) NOT NULL,
	[address] VARCHAR(40) NULL
)

 

인덱스(Index) 생성
  • 자동 인덱스 생성 – (PRIMARY KEY 설정 및 인덱스 확인)
    • 기본으로 Clustered Index로 설정
ALTER TABLE hallym
ADD CONSTRAINT pk_hallym PRIMARY KEY (cust_id)

sp_helpindex hallym

 

인덱스(Index) 생성
  • 지정 인덱스 생성 – (인덱스 설정 및 인덱스 확인)
    • 기본으로 Non-Clustered Index로 생성
CREATE INDEX idxl ON hallym(cust_id)

sp_helpindex hallym