본문 바로가기
SQL/Oracle

오라클 인덱스 타는지 확인방법

by wakestand 2021. 4. 14.
반응형

오라클에서 특정 쿼리 수행 시

인덱스(INDEX)를 타는지 확인하려면

쿼리문 위에 EXPLAIN PLAN FOR를 작성한 후

쿼리를 돌려주면 되는데

 

돌려주면 아무것도 뜨는 것이 없지만

 

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY)

이 쿼리를 수행해주면

 

아까 EXPLAIN PLAN FOR를 사용했던

쿼리를 가지고 수행했을 경우

 

어떻게 수행할지 보여주는데

여기서 Operation / Name 부분을 보면

TABLE ACCESS FULL / TEST2 가 보이는데

 

Operation 부분이 FULL 이거나

Name에 인덱스 명이 들어오지 않으면

인덱스를 타지 않는 상태고

 

 

위와 같이

Operation 부분에 INDEX가 들어있거나

Name에 인덱스 명이 들어오면

인덱스를 타는 상태가 되겠다

 

마지막으로 예제에 사용한 쿼리는 아래와 같다

 

-- 인덱스 타는지 확인할 쿼리
EXPLAIN PLAN FOR
SELECT * 
  FROM 테이블명
 WHERE 1=1
   AND 조건..
 
-- 인덱스 타는지 확인(Operation / Name 확인)
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY)

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

 

반응형

댓글