August 2, 2019 Comments(0) Uncategorized

    오라클 힌트 예제

    Oracle은 직원 테이블에서 전체 테이블 검사를 수행하여 WHERE 절의 조건에서 사용할 수 있는 last_name 열에 인덱스가 있는 경우에도 이 문을 실행합니다. CACHE(표): 이 힌트는 오라클에게 가장 최근에 사용한 목록의 헤드에 테이블에 대해 검색된 블록을 추가하라고 지시합니다. 예를 들어 정기적으로 사용되는 조회 테이블에 유용할 수 있습니다. 최신 Oracle 데이터베이스에서 인덱스 힌트는 자주 필요하지 않습니다. 힌트를 전혀 사용하지 않고 Oracle10+에서 코드를 테스트해야 합니다. 뷰에 단일 테이블이 포함되어 있거나 단일 테이블이 있는 추가 힌트 뷰를 참조하지 않는 한 참조된 뷰에 대한 액세스 경로 및 조인 힌트는 무시됩니다. 이러한 단일 테이블 뷰의 경우 뷰에 대한 액세스 경로 힌트 또는 조인 힌트가 뷰 내부의 테이블에 적용됩니다. USE_NL 힌트를 사용하면 Oracle이 지정된 각 테이블을 내부 테이블로 사용하여 중첩 루프조인이 있는 다른 행 소스에 조인합니다. 전역 힌트 구문은 예제 17-4에서와 같이 병합할 수 없는 보기에도 적용됩니다. 오라클은 특정 인덱스를 쿼리에 강제로 부여할 수 있도록 허용합니다. 이것은 아마도 모든 힌트의 가장 일반적으로 사용되는 힌트입니다. USE_MERGE 힌트를 사용하면 Oracle이 정렬 병합 조인을 사용하여 지정된 각 테이블을 다른 행 소스와 조인합니다.

    NO_MERGE 힌트로 인해 오라클은 병합 가능한 뷰를 병합하지 않습니다. 뷰 또는 하위 쿼리에서 테이블에 대한 힌트를 지정하려면 전역 힌트 구문을 지정하는 것이 좋습니다. “전역 테이블 힌트 지정”을 참조하십시오. 10g에서는 dynamic_sampling 힌트를 사용하여 오라클이 휘발성이 높은 테이블의 카디널리티를 추정하도록 지시할 수 있습니다. 병합 가능한 뷰에 대한 힌트 동작은 “경로 액세스 및 뷰에 대한 힌트 결합” 및 “경로 액세스 및 뷰 내부 힌트 결합”을 참조하십시오. 다시 쓰기: 이 힌트는 오라클이 비용에 관계없이 구체화된 보기를 사용하여 쿼리를 다시 작성하도록 지시합니다. 쿼리 다시 쓰기에 대해 자세히 알아보려면 필인이 작성한 다른 문서를 읽을 수 있습니다. INDEX_JOIN, INDEX_COMBINE 및 AND_EQUAL 힌트는 오라클이 인덱스 병합 작업을 수행하는 데 사용됩니다… 동일한 테이블에서 여러 인덱스를 사용하지만 각 단계에서 조인 작업을 수행하지 않습니다. CARDINALITY(표 n): 이 힌트는 오라클이 자체 통계에 의존하지 않고 n을 테이블로 사용하도록 지시합니다.

    예를 들어 전역 임시 테이블과 함께 이 힌트를 사용해야 할 수 있습니다. 병합 가능한 뷰에 대한 힌트 동작은 “조회의 최적화 접근 방식 및 목표 힌트”를 참조하십시오. Oracle 힌트를 사용하여 SQL을 “최적화 자 지시문”으로 조정하여 SQL의 실행 계획을 변경하는 재정의할 수 있습니다. Oracle 힌트가 튜닝에 적합한 경우가 있습니다. 힌트를 사용하면 일반적으로 최적화 프로그램이 결정을 내릴 수 있습니다. 응용 프로그램 디자이너는 최적화 프로그램이 모르는 데이터에 대한 정보를 알 수 있습니다. 힌트는 최적화 프로그램이 특정 기준에 따라 특정 쿼리 실행 계획을 선택하도록 지시하는 메커니즘을 제공합니다. 질문: 쿼리에 인덱스 힌트를 추가했지만 힌트가 무시되고 있습니다.

    인덱스 힌트에 대한 올바른 구문은 무엇이며 쿼리에서 인덱스 힌트를 사용하도록 하려면 어떻게 해야 합니까? 답변: Oracle 인덱스 힌트 구문은 인덱스 힌트 구문이 정확하지 않아 주석으로 처리되고 구현되지 않기 때문에 까다롭습니다. 다음은 인덱스 힌트에 대한 올바른 구문의 예입니다: Oracle 힌트로 튜닝을 완전히 처리하면 내 책 “Oracle 튜닝: 최종 참조”또는 고급 SQL 튜닝에 대한 교육을 참조하십시오. 힌트의 유형 및 사용에 대한 설명은 “최적화 프로그램 힌트 사용”을 참조하십시오. 힌트는 다음 범주로 그룹화됩니다. 예를 들어 인덱스를 지정하는 힌트는 다음과 같이 간단한 인덱스 이름 또는 괄호로 만든 열 목록을 사용할 수 있습니다.