webve: 단일 SQL문의 액세스 플랜 그래프 생성

webve API에 단일 SQL문을 전달하면 API는 명령문을 Explain하고 액세스 플랜 다이어그램 URL을 리턴합니다.

입력 매개변수

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

표 1. 입력 매개변수
가능한 값 기본값
dbType 데이터 서버 유형 ZOS  
dbHost 데이터 서버의 호스트입니다. 도메인 이름 또는 IP 주소  
dbPort 데이터 서버의 포트 번호    
dbName 데이터 서버 이름    
dbUser 데이터 서버에 연결할 때 사용할 ID입니다.    
dbPassword 데이터 서버에 연결할 때 사용할 비밀번호입니다.    
sql SQL문의 텍스트입니다.    
schema SQL문에 규정되지 않은 오브젝트에 사용할 EXPLAIN 프로세스의 스키마입니다. 이 값은 tuning_service.properties 파일에 설정된 값을 겹쳐씁니다.    
sqlid CURRENT SQLID 특수 레지스터 값을 설정합니다.   값을 지정하지 않는 경우, 튜닝 서비스는 서브시스템 연결에 대해 지정된 권한 부여 ID를 사용합니다.

출력 매개변수

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

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

예제 1

이 예제에서는 cURL을 사용하여 webve API에 SQL문을 전달하며, 이 API는 액세스 플랜 그래프가 있는 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, 
   sql:\"SELECT N_NAME FROM NATION WHERE N_NATIONKEY < 10\" 
   }"
https://localhost/tuning/webve
출력
{        
"code" :0 ,        
"link" :"http://localhost:8080/ tuning/showwebve/webve/1394679279138-
      6626301199030/"
} 

예제 2

이 예제에서는 cURL을 사용하여 webve API에 SQL문을 전달합니다. 그러나 user_ID.NATION 테이블이 정의되지 않았기 때문에 오류가 있습니다.

입력
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, 
   sql:\"SELECT N_NAME FROM NATION WHERE N_NATIONKEY < 10\",
   }"
https://localhost/tuning/webve
출력
{ 
"code":8, 
"error":"The EXPLAIN statement failed. The following error was returned: 
   SQLCODE: -204, SQLSTATE: 42704.The SQL statement failed.", 
"exception":"com.ibm.datatools.dsoe.explain.zos.exception.ExplainException:
   com.ibm.datatools.dsoe.common.da.exception.OSCSQLException:
   com.ibm.db2.jcc.am.SqlSyntaxErrorException: user_ID.NATION IS AN
      UNDEFINED NAME.
   SQLCODE=-204, SQLSTATE=42704, DRIVER=3.67.24..." 
}

피드백