반응형
오라클에서 특정 쿼리 수행 시
인덱스(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 = '테이블명';
반응형
'SQL > Oracle' 카테고리의 다른 글
오라클 조회 시 NULL 값 기준으로 정렬방법 (0) | 2021.05.21 |
---|---|
오라클 WM_CONCAT / LISTAGG 으로 여러 행을 한 행으로 합치는 방법 (0) | 2021.05.19 |
오라클 모든 테이블 이름 검색방법 (0) | 2021.04.12 |
오라클 테이블 이름 변경방법 (0) | 2021.04.12 |
오라클 실행중인 쿼리 확인 및 강제 중지방법 (1) | 2021.03.11 |
댓글