Oracle Admin 강좌 (Oracle9i)
인덱스 삭제 및 정보 조회 8 5 28,689

by 김정식 인덱스 DROP INDEX DBA_INDEXES DBA_IND_COLUMNS [2002.01.24]


인덱스 삭제

다음과 같은 경우에 인덱스를 삭제한다.
  • - 인덱스가 더 이상 필요하지 않을 경우
  • - 인덱스에 관련된 테이블에 질의를 수행했을 때 기대되는 성능 향상을 제공하지 못한 경우
  • - 응용 프로그램이 데이터 질의에 인덱스를 사용하지 않을 경우
  • - 인덱스를 사용할 수 없게 되어 재구축 전에 삭제해야 할 경우
  • - 인덱스가 너무 단편화되어 재구축 전에 삭제해야 할 경우

  테이블이 삭제되면 관련된 모든 인덱스도 자동으로 삭제된다.

  UNIQUE 키나 PRIMARY KEY 제약조건이 설정된 인덱스는 인덱스만 삭제할 수 없다. 제약조건 관련 인덱스를 삭제하려면 제약조건 자체를 사용할 수 없게 하거나 삭제해야 한다.

삭제 문법

삭제 예제
 
SQL> DROP INDEX  emp_ename;  
    

인덱스 정보 조회

  DBA_INDEXESDBA_IND_COLUMNS 데이터사전을 조회하면 된다.

 
-- 유저가 소유한 인덱스의 이름, 유형, 상태 조회 예제
-- DBA_INDEXES 데이터 사전 조회
-- SYSDBA권한으로 접속하여 실행 하였습니다..
SQL> SELECT index_name, tablespace_name, index_type,
            uniqueness, status  
     FROM  DBA_INDEXES
     WHERE owner = 'SCOTT';
          
INDEX_NAME         TABLESPACE_NAME INDEX_TYPE  UNIQUENESS   STATUS
----------------   --------------- ----------  -----------  -------
EMP_LNAME_IDX      IND             NORMAL      NONUNIQUE    VALID
ORD_ORD_NO_IDX     IND             NORMAL      UNIQUE       VALID
ORD_REGION_ID_IDX  IND             BITMAP      NONUNIQUE    VALID
 
-- INDEX_TYPE 열은 인덱스가 비트맵인지 보통 인덱스인지를 가리 킵니다.
 


-- 인덱스가 생성된 테이블과 컬럼의 조회 예제  
-- DBA_IND_COLUMNS 데이터 사전 조회
SQL> SELECT index_name, table_owner, table_name, column_name
     FROM   DBA_IND_COLUMNS
     WHERE index_owner = 'SCOTT'
     ORDER BY index_name, column_position;
 
INDEX_NAME         TABLE_OWNER  TABLE_NAME  COLUMN_NAME
----------------   -----------  ----------  ----------
EMP_LNAME_IDX      SCOTT        EMP         LAST_NAME
ORD_ORD_NO_IDX     SCOTT        ORD         ORD_NO    
ORD_REGION_ID_IDX  SCOTT        ORD         REGION_ID
    

- 강좌 URL : http://www.gurubee.net/lecture/1112

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by 오너 [2005.12.08 15:15:30]
owner = 'SCOTT' 하지 않고 owner = 'scott' 이렇게 소문자로 쓰면 안됩니다.
대소문자를 구분하므로 주의!!

by 구태용 [2008.04.03 18:06:45]
ind$ 요 테이블이 없는걸로 나오는데요.
설명 부탁드립니다.

by 장태길 [2008.04.03 22:58:20]
sys 유저로 보셔야 할꺼에요.

by 돌이맹이 [2012.02.27 15:24:01]
아.. 그렇구나

by 손님 [2012.03.27 10:41:42]
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입