wia: 쿼리 워크로드에 대한 인덱스 권장사항 생성

wia API에 쿼리 워크로드 이름을 전달하면 API는 워크로드 인덱스 어드바이저를 실행합니다. 이 어드바이저는 인덱스에 대한 권장사항은 물론 분석 보고서도 생성합니다. 이 API는 권장사항과 보고서 URL을 리턴합니다.

입력 매개변수

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

표 1. 입력 매개변수
가능한 값
dbType 데이터 서버 유형 ZOS
dbHost 데이터 서버의 호스트입니다. 도메인 이름 또는 IP 주소
dbPort 데이터 서버의 포트 번호  
dbName 데이터 서버 이름  
dbUser 데이터 서버에 연결할 때 사용할 ID입니다.  
dbPassword 데이터 서버에 연결할 때 사용할 비밀번호입니다.  
workloadName 인덱스 권장사항을 원하는 쿼리 워크로드의 이름입니다.  

출력 매개변수

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

표 2. 출력 매개변수
code 웹 API의 리턴 코드입니다.
0
경고 없이 완료됨
4
완료되었지만 경고가 표시됨
8
오류로 인해 완료되지 않고 종료됨
link 워크로드 인덱스 어드바이저의 분석 보고서 URL입니다. 링크는 기본적으로 7일 후에 만기됩니다. tuning_service.properties 파일에서 이 시간 길이를 변경할 수 있습니다.
output 인덱스 권장사항의 DDL입니다.
message 오류 또는 경고 메시지입니다.
exception 예외가 발생한 경우 예외에 대한 정보입니다. IBM 지원 센터와 작업하여 문제점을 해결하는 경우 이 정보는 IBM 지원 센터에 유용합니다.

예제

이 예제에서는 cURL을 사용하여 wia API에 SQL문을 전달하며, 이 API는 워크로드 인덱스 어드바이저의 분석 보고서를 열 수 있는 URL과 인덱스 권장사항의 DDL을 둘 다 리턴합니다.

입력
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, 
   workloadName:Sample_Workload,
   }"
https://localhost/tuning/wia
출력
{        
"code" :0 ,
"message" :" 
      --Estimated change in performance: 32.57 % faster\r\n
      --Estimated disk space: 0.58 MB used\r\n
-------------------------------------------------------------\r\n
--Recommendations:\r\n
--Index: TPCDS.IDX1403130531140 Table: TPCDS.ORDER Action:Create\r\n
CREATE INDEX\"TPCDS\".\"IDX1403130531140\" ON \"TPCDS\".\"ORDER\" 
      ( \"O_TOTALPRICE\" ASC,
        \"O_ORDERDATE\" ASC, 
        \"O_SHIPPRIORITY\" ASC, 
        \"O_ORDERKEY\" ASC ) 
      ALLOW REVERSE SCANS
      COLLECT STATISTICS;\r\n --END"        
"link" :"http://localhost:8080/tuning/download/wia/1394688720272-
      16067301553057/summary.html" ,
}

또는 쿼리 워크로드를 찾을 수 없는 경우 API는 오류 메시지와 예외를 리턴할 수 있습니다.

{   
    "code" :8 ,
    "error" :"The query workload Sample_Workload was not found. Ensure that the 
      name of the query workload is correct. Ensure that the query workload exists
      on the specified data server."
}

피드백