[오라클] 인덱스 조회 방법 (Index)

오라클(Oracle) 인덱스 조회 쿼리

 

오라클 쿼리를 작성하기 전에 필수적으로 인덱스(Index)를 확인해야 한다. 인덱스를 무시하고 쿼리를 작성하면 심각한 성능 이슈가 발생 할 수 있다. 인덱스는 오라클 시스템뷰의 하나인  ALL_IND_COLUMNS를 사용하여 쉽게 조회가 가능하다.

 

SELECT a.table_name 
     , a.index_name 
     , a.column_name 
  FROM all_ind_columns a 
 WHERE a.table_name = 'EMP' 
 ORDER BY a.index_name
        , a.column_position

 

[컬럼 코멘트를 포함하여 조회]

SELECT a.table_name
     , a.index_name
     , a.column_name
     , b.comments
  FROM all_ind_columns a
     , all_col_comments b
 WHERE a.table_name = 'EMP'
   AND a.table_owner = b.owner
   AND a.table_name = b.table_name
   AND a.column_name = b.column_name
 ORDER BY a.index_name
        , a.column_position

 

 

 

사용자에 따라서 사용할 수 있는 뷰가 달라진다. 위에 쿼리가 조회되지 않는다면 뷰를 바꿔서 조회하면 된다.

(XXX_IND_COLUMNS, XXX_COL_COMMENTS)

 

 ALL_IND_COLUMNS  현재 사용자가 엑세스할 수 있는 테이블에 대한 인덱스 정의
 USER_IND_COLUMNS  현재 사용자의 스키마에 있는 테이블에 대한 인덱스 정의
 DBA_IND_COLUMNS  데이터베이스의 모든 인덱스 정의

 

SELECT a.table_name 
     , a.index_name 
     , a.column_name 
     , b.comments 
  FROM user_ind_columns a 
     , user_col_comments b
 WHERE a.table_name = 'EMP' 
   AND a.table_owner = b.owner 
   AND a.table_name = b.table_name 
   AND a.column_name = b.column_name 
 ORDER BY a.index_name
        , a.column_position
; 
 
SELECT a.table_name 
     , a.index_name 
     , a.column_name 
     , b.comments 
  FROM dba_ind_columns a 
     , dba_col_comments b 
 WHERE a.table_name = 'EMP' 
   AND a.table_owner = b.owner 
   AND a.table_name = b.table_name 
   AND a.column_name = b.column_name 
 ORDER BY a.index_name
        , a.column_position
;

 

 

댓글

Designed by JB FACTORY