애플리케이션의 SQL문 추가, 제거 또는 수정 후 액세스 플랜에 대한 변경사항 찾기 및 수정

일반적으로 소스 프로그램에서 SQL문을 추가, 제거 또는 수정할 때 ACTION(REPLACE) 서브옵션과 함께 BIND 명령을 실행하여 관련 DB2® 패키지를 리바인드해야 합니다. 이 명령을 실행하면 SQL문에 대한 액세스 플랜이 변경되고 성능에 영향을 줄 수 있습니다.

시작하기 전에

전제조건이 만족되는지 확인하십시오.

이 태스크 정보

이 프로시저에서는 애플리케이션의 SQL문을 포함하는 쿼리 워크로드를 작성하고 Explain합니다. 그런 다음 애플리케이션의 SQL문에 대해 필요한 변경사항을 작성합니다. 다음에는, 애플리케이션의 SQL문을 포함하는 또 다른 쿼리 워크로드를 작성하고 Explain합니다. 마지막으로, 첫 번째 쿼리 워크로드에 대한 EXPLAIN 스냅샷을 두 번째 쿼리 워크로드에 대한 EXPLAIN 스냅샷과 비교합니다.

InfoSphere® Optim™ Query Workload Tuner의 EXPLAIN 스냅샷은 특정 시점에 수집되는 EXPLAIN 정보 세트입니다.

프로시저

SQL문 추가, 제거 또는 수정으로 인한 액세스 플랜 변경사항을 식별하고 다루려면 다음을 수행하십시오.

  1. 애플리케이션에 있는 SQL문의 쿼리 워크로드를 작성하십시오.
    1. SQL문을 캡처하십시오.
    2. SQL문을 캡처한 후, 모든 명령문에서 쿼리 워크로드 작성 단추를 클릭하십시오.
    3. 입력 워크로드 이름 및 설명 창에서 새 쿼리 워크로드를 식별하는 정보를 지정하십시오.
    관리 섹션의 워크로드 관리 및 조정 페이지가 열립니다. 새 쿼리 워크로드가 이 페이지의 테이블에 표시됩니다. 쿼리 워크로드의 상태는 CAPTURED입니다.
  2. 쿼리 워크로드를 Explain하십시오.
    참고: 다음 소스에서 SQL문을 캡처했고 쿼리 워크로드를 작성할 때 EXPLAIN 정보를 저장할 것으로 선택한 경우, 쿼리 워크로드를 Explain할 필요가 없습니다.
    • Linux, UNIX 및 Windows용 DB2: ACTIVITIES 이벤트 모니터, EXPLAIN 테이블, 패키지, 패키지 캐시
    • z/OS용 DB2: 카탈로그 플랜 및 패키지, 동적 명령문 캐시
    1. 워크로드 관리 페이지에서 쿼리 워크로드를 선택하고 추가 조치 필드에서 선택된 워크로드 Explain을 선택하십시오.
    2. EXPLAIN 정보 수집 창에서, 쿼리 워크로드에 있는 SQL문의 런타임 환경에 대한 선택값을 지정하십시오.
  3. 애플리케이션의 SQL문을 추가, 제거 또는 수정하십시오. 완료한 후 명령문이 정적이면 EXPLAIN 옵션을 YES로, ACTION 옵션을 REPLACE로 설정하고 패키지를 리바인드하십시오.
  4. 애플리케이션에 있는 SQL문의 또 다른 쿼리 워크로드를 작성하십시오.
    1. SQL문을 캡처하십시오.
    2. SQL문을 캡처한 후, 모든 명령문에서 쿼리 워크로드 작성 단추를 클릭하십시오.
    3. 입력 워크로드 이름 및 설명 창에서 새 쿼리 워크로드를 식별하는 정보를 지정하십시오.
  5. 쿼리 워크로드를 Explain하십시오.
    참고: 다음 소스에서 SQL문을 캡처했고 쿼리 워크로드를 작성할 때 EXPLAIN 정보를 저장할 것으로 선택한 경우, 쿼리 워크로드를 Explain할 필요가 없습니다.
    • Linux, UNIX 및 Windows용 DB2: ACTIVITIES 이벤트 모니터, EXPLAIN 테이블, 패키지, 패키지 캐시
    • z/OS용 DB2: 카탈로그 플랜 및 패키지, 동적 명령문 캐시
    1. 워크로드 관리 페이지에서 쿼리 워크로드를 선택하고 추가 조치 필드에서 선택된 워크로드 Explain을 선택하십시오.
    2. EXPLAIN 정보 수집 창에서, 쿼리 워크로드에 있는 SQL문의 런타임 환경에 대한 선택값을 지정하십시오.
  6. 두 쿼리 워크로드를 비교하십시오.
    1. Workflow Assistant의 왼쪽에 있는 관리 탭을 클릭하십시오.
    2. 워크로드 관리 페이지에서, 2단계에서 Explain한 쿼리 워크로드를 선택하십시오. 그런 다음 비교 단추를 클릭하십시오.
    3. 다른 워크로드 또는 스냅샷과 비교하려면 선택 창에서, 선택된 워크로드의 액세스 플랜을 또 다른 워크로드의 액세스 플랜과 비교 옵션을 선택하고 확인을 클릭하십시오.
    4. 액세스 플랜을 다른 워크로드의 액세스 플랜과 비교 마법사의 단계를 수행하십시오.
    5. 비교가 완료될 때, 액세스 플랜 및 계산된 비용에 대한 변경사항을 찾으십시오. 조치가 필요한 변경이 없는 경우, 비교를 완료합니다. 그러나 조치가 필요한 변경이 있으면 다음 단계를 계속하십시오.
  7. 성능 문제점을 갖는 SQL문을 포함하는 쿼리 워크로드를 작성 및 튜닝하려는 경우, 비교 섹션의 워크로드 EXPLAIN 스냅샷 및 SQL문별로 비교 결과 보기 페이지의 추가 조치 필드에서 튜닝을 위한 새 쿼리 워크로드 작성을 선택하십시오. 새 쿼리 워크로드 생성 마법사가 열립니다. 이 마법사에서 쿼리 워크로드에 SQL문을 포함하기 위한 기준을 설정할 수 있습니다. 쿼리 워크로드가 작성된 후, 튜닝을 위해 이러한 일반 단계를 참조할 수 있습니다.
  8. 하나 이상의 문제가 있는 명령문에 대한 최적화 힌트 또는 최적화 프로파일을 작성하려는 경우 다음 단계 중 하나를 수행하십시오.
    1. 액세스 플랜을 비교한 명령문 목록에 있는 명령문을 선택하십시오.
    2. 목록 맨 위에 있는 세부사항 보기 단추를 클릭하십시오.
    3. SQL문 액세스 플랜별로 비교 결과 보기 페이지의 맨 위에서 최적화 힌트 작성 단추나 최적화 프로파일 작성 단추를 클릭하십시오. 나타나는 단추는 사용자가 작업 중인 데이터베이스 연결에 따라 다릅니다.
  9. SQL문이 정적이고 문제가 있는 명령문의 쿼리 워크로드를 튜닝했거나 최적화 힌트 또는 최적화 프로파일을 작성한 경우, 패키지를 리바인드하십시오. 미래의 비교에서 바인드 시간 EXPLAIN 스냅샷을 사용할 수 있기를 원하는 경우 EXPLAIN 옵션을 YES로 설정하십시오.

피드백