최적화 프로파일을 사용하여 SQL문에 대한 액세스 플랜 작성 방법에 직접 영향을 줄 수 있습니다. 이 프로파일에서
사용할 인덱스, SQL문이 참조하는 테이블에 액세스하는 방법, 사용할 조인 메소드 및 기타 설정을 지정할 수 있습니다.
이 태스크 정보
최적화 프로파일은 프로파일이 사용 가능한 동안 실행되는 모든 데이터 처리 언어(DML)에 적용되는 전역 가이드라인을 포함할 수 있으며 패키지의 개별 DML문에 적용되는 특정 가이드라인도 포함할 수 있습니다.
최적화 프로파일 작성, 유효성 확인 및 배치를 위해 Visual Editor를 열려면 다음을 수행하십시오.
다음에 수행할 작업
최적화 프로파일을 사용하여 액세스 플랜 사용자 정의 페이지의 섹션을 사용하여
최적화 프로파일에 대한 가이드라인을 지정하십시오.
이 페이지는 세 섹션으로 구성됩니다.
- 결합 다이어그램 및 결합 시퀀스 다이어그램
- 이 섹션은 페이지의 맨 위 왼쪽 구석에 표시됩니다.
결합 다이어그램은 명령문이 참조하는 테이블을 노드로 표시합니다. 노드 간 경계는 테이블간 관계를 표시합니다. 경계가 표시하는 술어의 유형은 경계와 함께 표시됩니다. 술어는 로컬 술어 또는 Join 술어가 될 수 있습니다. 노드를 두 번 클릭하여 액세스 플랜에서 해당 테이블에 액세스하는 방식을 변경할 수 있습니다.
결합 시퀀스 다이어그램은 SQL문에 대한 액세스 플랜에서 결합 시퀀스를 표시합니다.
테이블을 나타내는 각 노드는 다음 정보를 표시합니다:
- DB2 옵티마이저에서 재작성한 명령문의 테이블 이름
- 완전한 테이블 이름
- 테이블의 카디널리티
- 테이블에 지정된 액세스 유형
- 편집 가능한 결합 시퀀스 다이어그램
- 이 섹션은 페이지의 맨 위 오른쪽 구석에 표시됩니다.
결합 유형을 변경하거나 결합을 추가 또는 삭제하여 결합 시퀀스를 편집할 수 있습니다. 또한 SQL문이 참조하는 테이블을 나타내는 노드를 추가하고 제거할 수도 있습니다.
- 최적화 프로파일의 가이드라인
- 이 섹션은 페이지의 맨 아래 부분에 표시됩니다.
최적화 프로파일의 가이드라인 섹션을 사용하여 다음 태스크를 완료할 수 있습니다.
- 최적화 프로파일을 사용하는 모든 명령문에 대한 가이드라인 설정
- 구체화된 쿼리테이블을 사용 또는 사용 안함. 사용하도록 설정한 경우 어떤 MQT에서 사용을 고려할 지를 지정할 수 있습니다.
- 전산 파티션 그룹 최적화의 고려사항 사용 또는 사용 안함. 이 고려사항을 사용으로 설정한 경우, DB2 옵티마이저에 대한 파티션 그룹을 지정하여 전산 파티션 그룹 최적화의 사용을 고려할 수 있습니다.
- REOPT 바인드 옵션 설정을 다른 값으로 겹쳐쓰기
- DEGREE 바인드 옵션 설정을 다른 값으로 겹쳐쓰기
- QUERYOPT 바인드 옵션 설정을 다른 값으로 겹쳐쓰기
- 실시간 통계 콜렉션 사용 또는 사용 안함. 콜렉션 사용으로 설정한 경우 DB2 옵티마이저에서 이러한 통계 수집을 허용할 최대 시간을 지정할 수 있습니다. 옵티마이저에서 통계 수집에 시간이 추가로 필요하다고 예상하는 경우 통계를 수집하지 않습니다.
- MQT 강제 실행 사용.
- 현재 SQL문에 대한 가이드라인 설정
- REOPT 바인드 옵션 설정을 다른 값으로 겹쳐쓰기
- DEGREE 바인드 옵션 설정을 다른 값으로 겹쳐쓰기
- QUERYOPT 바인드 옵션 설정을 다른 값으로 겹쳐쓰기
- 실시간 통계 콜렉션 사용 또는 사용 안함. 콜렉션 사용으로 설정한 경우 DB2 옵티마이저에서 이러한 통계 수집을 허용할 최대 시간을 지정할 수 있습니다. 옵티마이저에서 통계 수집에 시간이 추가로 필요하다고 예상하는 경우 통계를 수집하지 않습니다.
- MQT 강제 실행 사용.
- 원래 명령문을 구문적으로 동등한 최적화된 명령문으로 변환하는 쿼리 다시 쓰기 최적화 단계 중에 고려되는 변환에 적용되는 가이드라인을 설정합니다.
- IN-LIST 술어 - 결합(predicate-to-join) 다시 쓰기 변환 사용 또는 사용 안함
- NOT-EXISTS 술어 - 비결합(predicate-to-anti-join) 다시 쓰기 변환 사용 또는 사용 안함
- NOT-IN 술어 - 비결합(predicate-to-anti-join) 다시 쓰기 변환 사용 또는 사용 안함
- 서브쿼리- 결합(subquery-to-join) 다시 쓰기 변환 사용 또는 사용 안함
- 테이블에 액세스하는 방법 사용자 정의
- 플랜 최적화 가이드라인 설정.
- 결합 다이어그램의 테이블을 두 번 클릭하여 테이블에 액세스하는 방법을 변경.
문제에 대해 최적화 프로파일을 검사하여 프로파일을 배치하기 전에 이를 정정할 수 있습니다.
마지막으로, 최적화 프로파일을 배치할 수 있습니다. 배치란 최적화 프로파일을 SYSTOOLS.OPT_PROFILE 테이블의 행으로 삽입하는 것을 의미합니다.
OPTPROFILE 바인드 옵션을 사용하여 패키지 레벨에서 최적화 파일을 사용하는지를 지정하거나 CURRENT OPTIMIZATION PROFILE 특수 레지스터를 사용하여 명령문 레벨에서 최적화 프로파일을 사용하는지를 지정할 수 있습니다.
이 특수 레지스터에는 최적화를 위해 동적으로 준비된 명령문에서 사용하는 최적화 프로파일의 완전한 이름이 포함됩니다. CLI 애플리케이션의 경우 CURRENTOPTIMIZATIONPROFILE 클라이언트 구성 옵션을 사용하여 각 연결에 대해 이 특수 레지스터를 설정할 수 있습니다.