z/OS®용 DB2® 서브시스템에서 실행하는
SQL문에 대한 최적화 힌트를 작성, 유효성 확인 및 배치할 수 있습니다.
최적화 힌트를 사용하면 DB2 옵티마이저가 SQL문을 위한 최적
실행 계획을 선택하도록 도와주는 기준을 설정할 수 있습니다.
이 태스크 정보
다음과 같은
경우 DB2에 최적화 힌트를
제공하면 유용합니다. - 리바인드 및 릴리스 마이그레이션 시 응답 시간의 일관성을 유지하고 싶은 경우입니다. 플랜 또는 패키지가 리바인드되면 액세스 경로도 다시 공식화됩니다. 데이터베이스 또는
애플리케이션이 변경되었거나 DB2에
다른 액세스 플랜을 선택해야 하는 새로운 함수가 있는 경우,
새 액세스 플랜이 제대로 작동하지 않으면 이전 액세스 플랜을 사용하는 것이
유용합니다.
- DB2에서 선택한 액세스 플랜을 일시적으로 무시하려고 합니다.
최적화 힌트는 다음 세 가지 유형의 힌트로 구성됩니다.
- PLAN_TABLE 힌트
- 이 유형의 힌트는 특정 단일 권한 부여 ID가 발행한
SQL문의 특정 액세스 경로를 강제 실행하려고
시도합니다. 동일한 권한 부여 ID가 소유한 PLAN_TABLE 인스턴스의
행을 사용하여 OPTHINT 바인드 옵션 또는 CURRENT OPTIMIZATION HINT
특수 레지스터에 지정된 값에 따라 힌트를 적용합니다.
- 명령문 레벨 액세스 경로 힌트(z/OS용 DB2 10 NFM 이상)
- 이 유형의 힌트는 DB2가 지정된 PLAN_TABLE
행을 사용하여 일치하는 SQL문의 액세스 경로를 판별하도록
지정합니다. 지정된 범위의 일치하는 명령문에만 적용되는
액세스 경로 힌트도 작성할 수 있습니다.
- 최적화 매개변수 힌트(z/OS용 DB2 10 NFM 이상)
- 이 유형의 힌트는 DB2가 다음 서브시스템 매개변수
및 옵션 같은 특정 최적화 매개변수를 사용하여 힌트와
일치하는 모든 명령문을 처리하도록 지정합니다.
- REOPT 바인드 옵션
- STARJOIN 서브시스템 매개변수
- PARAMDEG 서브시스템 매개변수(MAX_PAR_DEGREE 열)
- CDSSRDEF 서브시스템 매개변수(DEF_CURR_DEGREE 열)
- SJTABLES 서브시스템 매개변수
또한 최적화 매개변수를 지정하고 지정된 범위의
일치하는 명령문에만 적용되는 힌트도 작성할 수 있습니다.
한 번에 둘 이상의 힌트 유형을 배치할 수 없습니다.
그러나 단일 SQL문에 대해 여러 가지 유형의 힌트를 순차적으로
배치할 수 있습니다. "
최적화 힌트의 공존성"을 참조하십시오.
팁: 사용자의 상황에 맞는 힌트 유형이
확실하지 않은 경우, 편집기에서 세 유형을 모두 정의한 후
테스트를 위해 한 번에 하나씩 배치할 수 있습니다.
프로시저
최적화 힌트를 작성, 유효성 확인 및 배치하려면 다음을 수행하십시오.
- 최적화 힌트를 작성하려는 SQL문을 캡처 또는
선택하십시오.
- 단일 캡처된 SQL문에서 작업하려는 경우
다음 단계를 수행하십시오.
- 조정하려는 SQL문을 캡처하십시오. 단일 쿼리 튜닝을 위해 SQL문을 캡처할 수 있는 위치를 참조하십시오.
- 명령문을 선택하고 명령문 튜닝
단추를 클릭하십시오. 호출 섹션에서 단일 어드바이저 및 분석 도구 실행 페이지가 열립니다.
- 쿼리 워크로드에 있는 SQL문에서 작업하려는 경우
다음 단계를 수행하십시오.
- Workflow Assistant의 왼쪽에 있는 관리
탭을 클릭하십시오.
- 워크로드 관리 페이지에서 해당 SQL문을
포함하는 쿼리 워크로드를 선택하십시오.
- 추가 조치 필드에서 명령문
표시를 선택하십시오.
- 명령문 표시 페이지에서 SQL문을 마우스 오른쪽 단추로
클릭하고 선택된 명령문에 단일 쿼리 어드바이저 및 도구
실행을 선택하십시오. 호출 섹션의 단일 쿼리 어드바이저 및 분석 도구
실행 페이지가 열립니다.
- Workflow Assistant 왼쪽에서 단일
쿼리 아래의 고급을 펼치고
최적화 힌트 작성을 선택하십시오. Workflow Assistant가
검토 섹션의 최적화 힌트를 사용하여
액세스 플랜 사용자 정의 페이지를 엽니다. 이 페이지는 다음 세 개의 섹션을 포함합니다.
- 결합 다이어그램
- 결합 다이어그램은 이 정보를 표시합니다.
- 쿼리가 접촉하는 테이블로서 다이어그램에는 노드로 표시됩니다.
- 테이블 간의 관계로서 다이어그램에는 노드 간의 라인으로 표시되고 쿼리의 술어 분석을 기반으로 생성됩니다.
- 로컬 및 Join 술어 모두
SQL문의 액세스 플랜에서 테이블이 참조되는 방법을 사용자 정의하려면 테이블을 더블 클릭하십시오. 사용자 정의는 테이블에서 페이지 맨 아래
개요 섹션에 나타납니다. 사용자 정의는 아직 활성이 아닙니다. 계속해서
최적화 힌트에 다른 사용자 정의를 추가할 수 있습니다.
- 편집 가능 결합 시퀀스 다이어그램
- 결합 시퀀스 다이어그램은 지정된 액세스 플랜에 대한 테이블의 결합 시퀀스를 표시합니다. 다음 조치를 수행할 수 있습니다.
- 선택된 노드 삭제
- 테이블 참조 노드 추가
- SQL문의 액세스 플랜에서 테이블이 참조되는 방법을 사용자 정의하려면 테이블을 더블 클릭하십시오.
- 조인 연산자 노드 추가
- 조인을 다른 유형의 조인으로 변경하려면 조인 연산자 노드를 더블 클릭하십시오.
- 다른 테이블 맨 위에서 테이블을 끌어 와서 조인 시퀀스에서 이러한 테이블의 위치를 전환하십시오.
기존 조인 시퀀스의 모든 변경사항이 페이지 맨 아래의 개요 테이블에 나열됩니다. 워크플로우 보조 프로그램이 이를 즉시 검사합니다. 오류와 경고가 페이지 맨 아래의 문제점 섹션에 표시됩니다. 조인 시퀀스의 모든 변경사항을 제거하고 싶은 경우에는 기본 조인 시퀀스를 클릭하십시오.
- 힌트 정의
- 결합 다이어그램 또는 결합 시퀀스 다이어그램에서 변경을 수행하면, 이 섹션에 새 행이 추가됩니다. 워크플로우 지원 프로그램이
항목에서 오류를 발견하고 항목에 관한 경고가 있거나 항목 변경을 제안하는 경우,
문제점 탭에 표시기가 나타납니다.
해당 탭을 클릭하여 정보를 보십시오.
- 최적화 힌트를 작성하십시오.
- PLAN_ABLE 힌트나 명령문 레벨 액세스 경로 힌트를
작성하려는 경우, 결합 다이어그램 및 결합 순서 다이어그램에서
변경하여 작성할 수 있습니다. 결합 다이어그램 또는 결합 순서 다이어그램에서
변경을 작성할 때, 새 행이 힌트 정의 섹션의 테이블 액세스
서브섹션에 추가됩니다. Workflow Assistant가 항목에서 오류를
발견하고 항목에 관한 경고가 있거나 항목 변경을
제안하는 경우, 문제점 탭에 표시기가 나타납니다.
해당 탭을 클릭하여 정보를 보십시오.
- 최적화 매개변수 힌트를 작성하려는 경우,
힌트 정의 섹션의 최적화 매개변수 서브섹션에서 값을
변경하여 작성할 수 있습니다.
- 최적화 힌트를 유효성 확인하십시오. 힌트 정의 섹션에 원하는 항목이 있고 오류를 모두 해결하고 모든 경고에 응답한 경우,
페이지 맨 위의 힌트 유효성 확인 아이콘을 클릭하십시오.
힌트 유효성 확인 창에서 애플리케이션 환경의 매개변수를 사용자 정의하거나 기본값을 그대로 두십시오. 이러한
옵션에 대한 정보를 보려면 창 왼쪽 하단 모서리의 도움말 아이콘을 클릭하거나 F1을 입력하십시오.
유효성 확인을 클릭하면 힌트 유효성 확인 결과 창이 열립니다.
이 창에 대한 도움말을 보려면 왼쪽 하단 모서리의 도움말 아이콘을 클릭하거나 F1을 입력하십시오.
- 유효성 검증 프로세스가 찾은 모든 문제점을 해결하십시오.
- 최적화 힌트를 배치하십시오.
- 힌트 배치 아이콘을 클릭하십시오.
- 힌트 배치 창에서 옵션(예: 힌트 이름 및 SQL문 식별에 사용할 번호)을
지정하십시오. 이 창에 대한 도움말을 보려면 왼쪽 하단 모서리의 도움말 아이콘을 클릭하거나 F1을 입력하십시오.
- 배치를 클릭하십시오.