오라클HINT사용법.docx

쿼리 튜닝. 교육자료

===========================================

내 질문

제시하신 오류 해결책과 요청하신 데이터베이스 관련 개념에 대해 답변드리겠습니다.


1. 오류 해결 방법: 무엇을 어떻게 고쳐야 하는가

제시된 오류들은 인덱스 이름 중복(ORA-00955)과 동일 컬럼 인덱스 중복 생성 시도(ORA-01408) 때문입니다. 문제를 해결하기 위한 구체적인 조치는 다음과 같습니다.

오류가 난 명령 오류 코드 문제 진단 해결 방법 (수정된 명령)
CREATE INDEX EMP_IDX02 ON EMP(JOB) ORA-00955 EMP_IDX02라는 이름의 객체가 이미 존재함. 새로운 고유 이름 사용:CREATE INDEX EMP_JOB_IX_02 ON EMP(JOB);
CREATE INDEX EMP_IDX10 ON EMP(JOB) ORA-00955 EMP_IDX10라는 이름의 객체가 이미 존재함. 새로운 고유 이름 사용:CREATE INDEX EMP_JOB_IX_10 ON EMP(JOB);
CREATE INDEX EMP_IDX10 ON EMP(SAL) ORA-00955 EMP_IDX10라는 이름의 객체가 이미 존재함. 새로운 고유 이름 사용:CREATE INDEX EMP_SAL_IX_10 ON EMP(SAL);
CREATE INDEX EMP_IDX15 ON EMP(JOB) ORA-01408 EMP(JOB) 컬럼에 대해 이미 인덱스가 존재함. 생성 시도 중단 또는 복합 인덱스 생성:CREATE INDEX EMP_JOB_SAL_IX ON EMP(JOB, SAL);

핵심 수정 조치:

  1. 고유한 이름 사용: EMP_IDX02 또는 EMP_IDX10 대신 EMP_JOB_IX_NEW와 같이 다른 인덱스 이름을 사용하세요.
  2. 중복 확인: 만약 EMP(JOB) 컬럼에 대한 인덱스가 꼭 필요하다면, 현재 스키마에 존재하는 기존 인덱스를 먼저 제거(DROP INDEX 기존인덱스명;)하거나, 기존 인덱스를 계속 사용하세요.

2. 인덱스(Index)와 힌트(Hint) 설명