Oracle SQL 실행 효율 을 높이 는 3 가지 방법

Oracle 은 Oracle SQL 표현 식 을 분석 하 는 데 걸 리 는 시간 을 줄 이 고 대량의 실행 계획 을 가 진 복잡 한 조 회 를 수행 할 때 분석 과정 이 시스템 의 성능 에 영향 을 줄 수 있 는 여러 가지 방법 을 제공 했다.지금 우 리 는 이 방법 들 중의 몇 가 지 를 간략하게 보 자.1.ordered 를 사용 하여 Oracle 은 여러 표 의 합병 을 분석 하 는 데 많은 시간 을 들 여 표 통합 의 최 적 순 서 를 확인 해 야 한다 고 알려 줍 니 다.SQL 표현 식 이 7 개 이상 의 표 통합 과 관련 이 있다 면 30 분 이상 분석 해 야 할 때 가 있 습 니 다.Oracle 은 표 통합 가능 한 모든 순 서 를 평가 해 야 하기 때 문 입 니 다.여덟 개의 표 에는 40,000 여 개의 순서 가 있다.Ordered 라 는 힌트(hint)는 다른 힌트 와 함께 사용 하면 적당 한 합병 순 서 를 만 들 수 있 습 니 다.Ordered 이 알림 은 SQL 표현 식 FROM 자구 에 열 거 된 표를 지정 한 순서에 따라 통합 하도록 요구 합 니 다.FROM 자구 의 첫 번 째 표 는 드라이버(driving table)를 지정 합 니 다.드라이버 는 최소 줄 수 를 되 돌려 주 는 표 여야 합 니 다.ordered 알림 을 사용 하면 매우 오래 걸 리 고 자원 을 소모 하 는 분석 작업 을 건 너 뛰 고 Oracle SQL 의 실행 을 가속 화 합 니 다.Listing A 는 다음 과 같 습 니 다:다음은 인용 세 션 입 니 다:Listing A select/*+ordered usenl(bonus) parallel(e, 4) */ e.ename, hiredate, b.comm from emp e, bonus b where e.ename = b.ename ; Listing A 는 복잡 한 조회 의 예 입 니 다.이 조 회 는 끼 워 넣 기 순환 을 강제 하여 emp 표 에 대한 병렬 조회 와 합 쳐 집 니 다.주의해 야 할 것 은,나 는 이미 ordered 힌트 를 사용 하여 Oracle 이 WHERE 자구 에 열 거 된 순서에 따라 표를 평가 하도록 유도 했다.2,theordered 사용predicates ordered_predicates 는 검색 한 WHERE 자구 에 지 정 된 것 을 알려 주 고 불 판단(Boolean predicate)이 평가 되 는 순 서 를 지정 하 는 데 사 용 됩 니 다.ordered 없 음predicates 의 경우 Oracle 은 다음 절 차 를 통 해 SQL 판단 의 순 서 를 평가 합 니 다.하위 조회 의 평 가 는 외부 WHERE 자구 의 Boolean 조건 보다 먼저 합 니 다.내 장 된 함수 나 하위 조회 가 없 는 모든 불 조건 은 WHERE 자구 에서 상 반 된 순서 로 평가 된다.즉,마지막 판단 이 가장 먼저 평가 된다.모든 판단 에 내 장 된 함 수 를 가 진 불 판단 은 예상 한 평가 치 에 따라 점차 배열 된다.ordered 를 사용 할 수 있 습 니 다.predicates 알림 은 이러한 결 성 된 평가 규칙 을 강제로 대체 합 니 다.그러면 WHERE 자구 에 있 는 항목 은 조회 에 나타 난 순서에 따라 평 가 됩 니 다.검색 한 WHERE 자구 에 PL/SQL 함 수 를 사용 한 경우 ordered 를 사용 합 니 다.predicates 알림.가장 제한 적 인 판단 을 알 고 오 라 클 이 이런 판단 을 가장 먼저 평가 하 기 를 바 랄 때 도 유용 하 다.용법 알림:ordered 를 사용 할 수 없습니다.predicates 알림 은 색인 키 를 판단 평가 하 는 순 서 를 저장 합 니 다.3.표 통합 평가 의 수량 을 제한 하고 SQL 분석 성능 을 향상 시 키 는 마지막 방법 은 Oracle 의 매개 변 수 를 강제로 대체 하 는 것 입 니 다.이 매개 변 수 는 하나의 조 회 를 평가 할 때 소 모 된 최적화 기 를 바탕 으로 평가 할 수 있 는 합병 수량 을 제어 합 니 다.optimizer_search_limit 이 매개 변 수 는 표 통합 조합의 최대 수량 을 지정 합 니 다.후 자 는 Oracle 에서 여러 표를 통합 하 는 가장 좋 은 방법 을 확인 하려 고 할 때 평 가 됩 니 다.이 매개 변 수 는 최적화 기 가 가능 한 합병 순 서 를 평가 하 는 데 더 많은 시간 을 들 이 는 것 을 방지 하 는 데 도움 이 되 며,가장 좋 은 합병 순 서 를 찾 는 데 시간 을 쓰 는 것 이 아니다.optimizer_search_limit 는 star join 알림 을 호출 하 는 궐 값 도 제어 하고 있 습 니 다.검색 에 표 가 optimizer 보다 적 을 때search_limit(결 성 된 값 이 5)일 때 스타 알림 이 찾 아 옵 니 다.

좋은 웹페이지 즐겨찾기