본문 바로가기
SQL/Oracle

오라클 인덱스 조회 생성 삭제 수정방법 정리

by wakestand 2021. 2. 3.
반응형

오라클에서 인덱스는 테이블의 데이터 포인터를 의미하는데

책의 목차와도 같이 테이블에 인덱스를 넣어주면

조회 시 더 빠르게 조회 결과를 얻을 수 있다

 

테이블 안에 데이터가 몇백~몇천만 건이 넘어갈 경우에는

인덱스가 거진 필수라고 봐주면 되겠다

 

하지만 몇장 되지 않는 책에 목차가 별 의미가 없듯이

인덱스로 사용하는 컬럼에 NULL이 많이 들어갔거나

데이터가 적거나 혹은 삽입, 수정, 삭제가 자주 일어나는 테이블에는

인덱스를 지정할 경우 사용하지 않은 것보다

더 오랜 시간이 걸릴 수도 있으니

이에 주의해서 사용해줘야 한다

 

왜 인덱스를 사용해야 하는지에 대한 내용은

아래 글을 참고해 주면 되고

 

SQL에서 인덱스가 필요한 이유

SQL에서 인덱스는 테이블의 데이터에 대한 포인터를 말하는데 책의 목차와 비슷한 개념이라고 보면 된다 책에 목차가 있으면 특정 내용이 어디에 있는지 알기 쉬운 것처럼 테이블에 인덱스를 삽

wakestand.tistory.com

인덱스 사용방법은 아래와 같다

 

인덱스 생성

CREATE INDEX 인덱스명 ON 테이블명(컬럼명);

 

인덱스명은 임의로 설정해주면 된다

EX) IND_NAME

또한 테이블명(컬럼명, 컬럼명) 과 같이

한 테이블에 여러개의 인덱스를 지정 가능하다

 

인덱스 삭제

DROP INDEX 인덱스명

 

인덱스 수정의 경우에는

인덱스 삭제 후 다시 만들어주는 방법을 사용해야 한다

 

인덱스 조회는

SELECT TABLE_NAME, INDEX_NAME, COLUMN_NAME

FROM ALL_IND_COLUMNS

WHERE TABLE_NAME = '테이블명'

 

이러면 INDEX_NAME이 인덱스명

COLUMN_NAME이 인덱스에서 사용하는 컬럼이 되곘다

 

마지막으로 예제에 사용한 쿼리는 다음과 같다

 

-- 인덱스 생성
CREATE INDEX 인덱스명 ON 테이블명(컬럼명);

-- 인덱스 삭제
DROP INDEX 인덱스명;

-- 인덱스 조회
SELECT TABLE_NAME, INDEX_NAME, COLUMN_NAME
  FROM ALL_IND_COLUMNS
 WHERE TABLE_NAME = '테이블명';
반응형

댓글