테스트 시스템에서 프로덕션 시스템으로 애플리케이션을 배치한 후 액세스 플랜 변경사항 찾기 및 수정

테스트 시스템의 SQL문을 프로덕션 시스템에 배치했을 때 해당 SQL문에 대한 액세스 플랜이 동일하게 유지되는지 여부를 확인할 수 있습니다. 프로덕션 시스템의 액세스 플랜 중 하나에서 개선이 필요한 경우, 문제가 있는 SQL문을 튜닝하거나 테스트 시스템에서 사용되는 액세스 플랜으로 되돌릴 수 있습니다.

시작하기 전에

이 태스크 정보

이 프로시저에서 테스트 중인 애플리케이션에 대한 SQL문의 쿼리 워크로드를 작성합니다. 이 쿼리 워크로드를 튜닝한 후, 애플리케이션을 프로덕션 시스템에 배치합니다. 다음에는, 프로덕션 시스템에서 동일한 SQL문의 쿼리 워크로드를 작성합니다. 마지막으로, 테스트 시스템에서 SQL문이 사용한 액세스 플랜과 해당 명령문이 프로덕션 시스템에서 사용한 액세스 플랜을 비교합니다. 프로덕션 시스템의 액세스 플랜에 대한 유해한 변경사항이 있는 경우, 문제가 있는 명령문의 쿼리 워크로드를 작성 및 튜닝하거나 테스트 시스템의 액세스 플랜으로 되돌려서 문제점을 정정할 수 있습니다.

프로시저

애플리케이션을 테스트 시스템에서 프로덕션 시스템으로 배치로 인한 액세스 플랜 변경사항을 식별하고 다루려면 다음을 수행하십시오.

  1. 사용자의 테스트 환경에서 애플리케이션에 있는 SQL문의 쿼리 워크로드를 작성하십시오.
    1. SQL문을 캡처하십시오.
    2. SQL문을 캡처한 후, 모든 명령문에서 쿼리 워크로드 작성 단추를 클릭하십시오.
    3. 입력 워크로드 이름 및 설명 창에서 새 쿼리 워크로드를 식별하는 정보를 지정하십시오.
    관리 섹션의 워크로드 관리 및 조정 페이지가 열립니다. 새 쿼리 워크로드가 이 페이지의 테이블에 표시됩니다. 쿼리 워크로드의 상태는 CAPTURED입니다.
  2. 워크로드 통계 어드바이저를 실행하고 권장사항을 구현하십시오.
  3. 시스템 카탈로그의 로컬 캐시가 최신 상태인지 확인하십시오.
  4. 워크로드 인덱스 어드바이저를 실행할 때 쿼리 워크로드를 다시 Explain하도록 지정하십시오.
    1. Workflow Assistant의 왼쪽에서 호출 섹션이 아직 열리지 않았으면 호출 탭을 클릭하십시오.
    2. 워크로드 어드바이저 실행 페이지에서 워크로드 어드바이저를 실행하기 전에 EXPLAIN 정보 재수집 옵션을 선택하십시오.
  5. 워크로드 통계 어드바이저를 다시 실행하여 추가 권장사항을 갖는지 확인하십시오. 추가 권장사항이 있으면 그를 구현하십시오.
  6. 워크로드 통계 어드바이저의 추가 권장사항을 구현한 경우, 시스템 카탈로그의 로컬 캐시가 최신 상태인지 확인하십시오.
  7. 워크로드 인덱스 어드바이저를 실행할 때 쿼리 워크로드를 다시 Explain하도록 지정하십시오.
    1. Workflow Assistant의 왼쪽에서 호출 섹션이 아직 열리지 않았으면 호출 탭을 클릭하십시오.
    2. 워크로드 어드바이저 실행 페이지에서 워크로드 어드바이저를 실행하기 전에 EXPLAIN 정보 재수집 옵션을 선택하십시오.
  8. 워크로드 인덱스 어드바이저를 실행하고 그의 권장사항을 구현하십시오.
  9. 쿼리 워크로드가 성능 요구사항에 맞게 튜닝되는 경우, 애플리케이션을 프로덕션 시스템에 배치하십시오.
  10. 데이터 소스 탐색기에서 프로덕션 시스템에 연결하십시오.
  11. 연결을 마우스 오른쪽 단추로 클릭하고 분석 및 튜닝 > 튜닝 시작을 선택하십시오.
  12. 테스트 시스템에서 작성한 쿼리 워크로드와 동일하거나 비슷한 쿼리 워크로드를 작성하십시오.
    1. SQL문을 캡처하십시오.
    2. SQL문을 캡처한 후, 모든 명령문에서 쿼리 워크로드 작성 단추를 클릭하십시오.
    3. 입력 워크로드 이름 및 설명 창에서 새 쿼리 워크로드를 식별하는 정보를 지정하십시오.
    관리 섹션의 워크로드 관리 및 조정 페이지가 열립니다. 새 쿼리 워크로드가 이 페이지의 테이블에 표시됩니다. 쿼리 워크로드의 상태는 CAPTURED입니다.
  13. 쿼리 워크로드를 Explain하십시오.
    참고: 다음 소스에서 SQL문을 캡처했고 쿼리 워크로드를 작성할 때 EXPLAIN 정보를 저장할 것으로 선택한 경우, 쿼리 워크로드를 Explain할 필요가 없습니다.
    • Linux, UNIX 및 Windows용 DB2: ACTIVITIES 이벤트 모니터, EXPLAIN 테이블, 패키지, 패키지 캐시
    • z/OS용 DB2: 카탈로그 플랜 및 패키지, 동적 명령문 캐시
    1. 워크로드 관리 페이지에서 쿼리 워크로드를 선택하고 추가 조치 필드에서 선택된 워크로드 Explain을 선택하십시오.
    2. EXPLAIN 정보 수집 창에서, 쿼리 워크로드에 있는 SQL문의 런타임 환경에 대한 선택값을 지정하십시오.
  14. 테스트 시스템에 연결된 Workflow Assistant의 인스턴스로 돌아가십시오. 해당 인스턴스가 더 이상 열리지 않는 경우, 데이터 소스 탐색기에서 시스템에 연결하고 연결을 마우스 오른쪽 단추로 클릭하고 분석 및 튜닝 > 튜닝 시작을 선택하십시오.
  15. Workflow Assistant의 왼쪽에 있는 관리 탭을 클릭하십시오.
  16. 워크로드 관리 페이지에서, 1단계에서 작성한 쿼리 워크로드를 선택하십시오.
  17. 비교 단추를 클릭하십시오.
  18. 선택된 워크로드의 액세스 플랜을 다른 워크로드에 대한 액세스 플랜과 비교 옵션을 선택하십시오.
  19. 액세스 플랜을 다른 워크로드의 액세스 플랜과 비교 마법사에서, 프로덕션 시스템을 선택하고 다음을 클릭하십시오.
  20. 사용자가 작성한 두 번째 쿼리 워크로드를 선택하고 다음을 클릭하십시오.
  21. 테스트 시스템의 쿼리 워크로드와 프로덕션 시스템의 쿼리 워크로드 모두에 대해, 비교에서 사용할 EXPLAIN 스냅샷을 선택하십시오. 그런 다음 완료를 클릭하십시오.

다음에 수행할 작업

비교 실행기록 페이지에서 비교할 항목을 두 번 클릭하십시오. 워크로드 EXPLAIN 스냅샷 및 SQL문별로 비교 결과 보기 페이지에서, 명령문 테이블을 검토하여 두 EXPLAIN 스냅샷에서 차이를 갖는 명령문을 찾으십시오. 다른 사람과 결과를 공유해야 하는 경우, 테이블 위의 추가 조치 필드에서 비교 HTML 보고서 생성을 선택하십시오.

프로덕션 시스템의 액세스 플랜 또는 SQL문의 계산된 비용이 개선이 필요함을 확인하는 경우, 해당 명령문에서 쿼리 워크로드를 작성할 수 있습니다. 그런 다음 쿼리 워크로드를 튜닝할 수 있습니다. 워크로드 EXPLAIN 스냅샷 및 SQL문별로 검토 결과 보기 페이지의 추가 조치 페이지에서 튜닝을 위한 새 쿼리 워크로드 작성을 선택하십시오.

다른 방식은 프로덕션 시스템의 액세스 플랜을 테스트 시스템의 액세스 플랜으로 바꾸는 것입니다. 워크로드 EXPLAIN 스냅샷 및 SQL문별로 검토 결과 보기 페이지의 추가 조치 페이지에서 모든 SQL문에 대한 액세스 플랜 잠금을 선택하십시오. 이 방식을 선택하는 경우, 통계 개선이나 옵티마이저에 대한 개선을 포함하는 유지보수 적용 같이 액세스 플랜을 개선할 수 있는 시스템에 대한 변경사항이 사용자가 잠근 액세스 플랜에는 어떤 효과도 없음을 이해해야 합니다. 그러나 해당 액세스 플랜은 갑작스런 변경을 겪지 않으며 예상대로 실행합니다.


피드백