compareworkload: EXPLAIN 스냅샷 비교

compareworkload API에 단일 쿼리 워크로드의 이름 또는 두 개의 쿼리 워크로드의 이름을 전달하면 API는 단일 쿼리 워크로드에 대한 최근 두 개의 EXPLAIN 스냅샷 비교 또는 두 개의 쿼리 워크로드에 대한 현재 두 개의 EXPLAIN 스냅샷 비교를 리턴합니다.

비교 유형

유형 1
단일 쿼리 워크로드에 대한 이전 및 현재 EXPLAIN 스냅샷을 비교합니다.
유형 2
동일한 서브시스템에 있는 두 개의 쿼리 워크로드의 현재 EXPLAIN 스냅샷을 비교합니다.
유형 3
서로 다른 서브시스템(예: 테스트 및 프로덕션 서브시스템)에 있는 두 개의 쿼리 워크로드의 현재 EXPLAIN 스냅샷을 비교합니다.

입력 매개변수

URL을 사용하여 API에 다음 키 및 값 쌍을 전달하십시오. https://localhost/tuning/compareworkload

표 1. 입력 매개변수. 이 테이블은 compareworkload 웹 API의 입력 매개변수를 나열합니다.
카테고리 가능한 값 선택사항 여부
연결 1 dbType 데이터 서버 유형 ZOS 아니오
dbHost 데이터 서버의 호스트입니다. 도메인 이름 또는 IP 주소 아니오
dbPort 데이터 서버의 포트 번호   아니오
dbName 데이터 서버 이름   아니오
dbUser 데이터 서버에 연결할 때 사용할 ID입니다.   아니오
dbPassword 데이터 서버에 연결할 때 사용할 비밀번호입니다.   아니오
연결 2 dbHost2 데이터 서버의 호스트입니다.   유형 3 비교의 경우만
dbPort2 데이터 서버의 포트 번호   유형 3 비교의 경우만
dbName2 데이터 서버 이름   유형 3 비교의 경우만
dbUser2 데이터 서버에 연결할 때 사용할 ID입니다.   유형 3 비교의 경우만
dbPassword2 데이터 서버에 연결할 때 사용할 비밀번호입니다.   유형 3 비교의 경우만
쿼리 워크로드 workload 비교에서 사용할 이전 EXPLAIN 스냅샷이 있는 쿼리 워크로드의 이름입니다.   아니오
workload2 비교에서 사용할 이후 EXPLAIN 스냅샷이 있는 쿼리 워크로드의 이름입니다. 단일 쿼리 워크로드의 두 EXPLAIN 스냅샷을 비교할 경우에는 이름이 첫 번째 이름과 동일할 수 있습니다.   유형 1 및 유형 2 비교의 경우만
SQL문 필터링 옵션 apChanged 액세스 플랜이 변경된 SQL문을 표시하도록 지정합니다. true 또는 false. 대소문자를 구분하지 않습니다.
costRegressed 사용자가 지정하는 백분율보다 크거나 같은 금액까지 계산된 비용이 증가된 SQL문을 표시하도록 지정합니다. 0 - 100 사이의 정수(두 값 포함)  
operator apChangedcostRegressed 키 둘 다에 대해 설정된 값과 일치하는 SQL문을 표시할지 해당 키 중 하나에 대해 설정된 값과 일치하는 SQL문을 표시할지 여부를 지정합니다. and 또는 or. 대소문자를 구분하지 않습니다. and

출력 매개변수

API는 다음 키 및 값 쌍을 리턴합니다.

표 2. 출력 매개변수
code 웹 API의 리턴 코드입니다.
0
경고 없이 완료됨
4
완료되었지만 경고가 표시됨
8
오류로 인해 완료되지 않고 종료됨
state
0
SQL문이 apChanged 또는 costRegressed 키에 대해 지정된 조건을 충족시키지 못하거나 apChangedcostRegressed에 대해 값이 지정되지 않았습니다.
1
하나 이상의 SQL문이 costRegressed 키에 대해 지정된 조건을 충족시킵니다.
2
하나 이상의 SQL문이 apChanged 키에 대해 지정된 조건을 충족시킵니다.
3
하나 이상의 SQL문이 apChangedcostRegressed 키 둘 다에 대해 지정된 조건을 충족시킵니다.
4
하나 이상의 SQL문이 apChanged에 대해 지정된 조건을 충족시키며, 하나 이상의 SQL문이 costRegressed 키에 대해 지정된 조건을 충족시킵니다.
link EXPLAIN 스냅샷의 액세스 플랜을 비교하는 보고서의 URL입니다. 링크는 기본적으로 7일 후에 만기됩니다. tuning_service.properties 파일에서 이 시간 길이를 변경할 수 있습니다.
output 보고서에 정보가 있는 필터링 기준을 충족시키는 SQL문 수입니다.
message 오류 또는 경고 메시지입니다.
exception 예외가 발생한 경우 예외에 대한 정보입니다. IBM 지원 센터와 작업하여 문제점을 해결하는 경우 이 정보는 IBM 지원 센터에 유용합니다.

예제 1

이 예제에서는 cURL을 사용하여 compareworkload API에 쿼리 워크로드의 이름을 전달합니다. 또한 이 요청은 실행 비용이 30% 이상 증가한 해당 SQL문에 대해서만 보고하도록 지정합니다. API는 쿼리 워크로드에 대한 최근 두 개의 EXPLAIN 스냅샷을 비교하고 비교 보고서를 생성하며, 다음 정보를 리턴합니다.
  • 필터링 기준을 충족시키는 SQL문 수
  • 보고서에 액세스하는 데 사용할 수 있는 URL
입력
curl 
--insecure 
-X POST 
-H "Content-Type: application/json; charset=UTF-8"
--data "{ 
   dbType:ZOS, 
   dbHost:host, 
   dbPort:port_number, 
   dbName:subsystem, 
   dbUser:user_ID, 
   dbPassword:password, 
   workload:Sample_Workload_1,
   apChanged:\"true\"
   costRegressed:30,
   operator:\"and\"
   }"
https://localhost/tuning/compareworkload
출력
{        
"code" :4 , 
"state" :2,       
"output" :"11" ,        
"link" :"http://localhost:8080/tuning/download/wapc/1394687451884-
      14798931739894/ComparisonReport_1.html"}

예제 2

이 예제에서는 cURL을 사용하여 compareworkload API에 두 개의 쿼리 워크로드의 이름을 전달합니다. 쿼리 워크로드는 동일한 서브시스템에서 실행됩니다. 또한 이 요청은 실행 비용이 20% 이상 증가한 해당 SQL문에 대해서만 보고하도록 지정합니다. API는 두 개의 쿼리 워크로드에 대한 최근 EXPLAIN 스냅샷을 비교하고 비교 보고서를 생성하며, 다음 정보를 리턴합니다.
  • 필터링 기준을 충족시키는 SQL문 수
  • 보고서에 액세스하는 데 사용할 수 있는 URL
curl 
--insecure 
-X POST 
-H "Content-Type: application/json; charset=UTF-8"
--data "{ 
   dbType:ZOS, 
   dbHost:host, 
   dbPort:port_number, 
   dbName:subsystem, 
   dbUser:user_ID, 
   dbPassword:password, 
   workload:Sample_Workload,
   workload2:Sample_Workload2,
   costRegressed:20,
   apChanged:\"true\"
   }"
https://localhost/tuning/compareworkload

API의 출력은 예제 1에 표시된 출력과 동일합니다.

예제 3

이 예제에서는 cURL을 사용하여 compareworkload API에 두 개의 쿼리 워크로드의 이름을 전달합니다. 쿼리 워크로드는 서로 다른 두 개의 서브시스템에서 실행됩니다. 또한 이 요청은 실행 비용이 20% 이상 증가한 해당 SQL문에 대해서만 보고하도록 지정합니다. API는 두 개의 쿼리 워크로드에 대한 최근 EXPLAIN 스냅샷을 비교하고 비교 보고서를 생성하며, 다음 정보를 리턴합니다.
  • 필터링 기준을 충족시키는 SQL문 수
  • 보고서에 액세스하는 데 사용할 수 있는 URL
curl 
--insecure 
-X POST 
-H "Content-Type: application/json; charset=UTF-8"
--data "{ 
   dbType:ZOS, 
   dbHost:host_for_the_first_connection, 
   dbPort:port_number, 
   dbName:subsystem, 
   dbUser:user_ID, 
   dbPassword:password,
   dbHost2:host_for_the_second_connection, 
   dbPort2:port_number, 
   dbName2:subsystem, 
   dbUser2:user_ID, 
   dbPassword2:password, 
   workload:Sample_Workload,
   workload2:Sample_Workload2,
   costRegressed:50,
   apChanged:\"true\",
   operator:\"or\"
   }"
https://localhost/tuning/compareworkload

API의 출력은 예제 1에 표시된 출력과 동일합니다.


피드백