webve : Génération de graphiques de plan d'accès pour des instructions SQL uniques

Une fois que vous avez transmis à l'API webve une instruction SQL unique, l'API explique l'instruction et renvoie l'URL permettant de consulter un graphique de plan d'accès.

Paramètres d'entrée

Transmettez à l'API les paires de clés et de valeurs suivantes en utilisant l'URL : https://localhost/tuning/webve

Tableau 1. Paramètres d'entrée
Clé Valeur Valeurs admises Valeur par défaut
dbType Type de serveur de données. ZOS  
dbHost Hôte du serveur de données. Nom du domaine ou adresse IP.  
dbPort Numéro de port du serveur de données.    
dbName Nom du serveur de données.    
dbUser ID à utiliser lors de la connexion au serveur de données.    
dbPassword Mot de passe à utiliser lors d'une connexion au serveur de données.    
sql Texte de l'instruction SQL.    
schema Schéma du processus EXPLAIN à utiliser pour les objets non habilités dans l'instruction SQL. Cette valeur remplace la valeur définie dans le fichier tuning_service.properties.    
sqlid Définit la valeur du registre spécial CURRENT SQLID.   Si vous n'indiquez pas de valeur, le service d'optimisation utilise l'ID d'autorisation spécifié pour la connexion au sous-système.

Paramètres de sortie

L'API renvoie les paires de clés et de valeurs suivantes :

Tableau 2. Paramètres de sortie
Clé Valeur
code Code retour de l'API Web.
0
Exécution sans avertissements
4
Exécution avec des avertissements
8
Arrêt avant la fin de l'exécution en raison d'une erreur
link URL du graphique de plan d'accès. Par défaut, le lien expire au bout de sept jours. Vous pouvez modifier cette durée dans le fichier tuning_service.properties.
message Messages d'erreur ou d'avertissement.
exception Informations sur l'exception, le cas échéant. Ces informations peuvent être utiles au service de support IBM si vous le contactez pour résoudre un problème.

Exemple 1

Cet exemple utilise cURL pour transmettre une instruction SQL à l'API webve, qui renvoie l'URL permettant de consulter le graphique de plan d'accès.

Entrée
curl
--insecure
-X POST
-H "Content-Type: application/json; charset=UTF-8"
--data "{ 
   dbType:ZOS,
   dbHost:hôte,
   dbPort:numéro_port,
   dbName:sous-système,
   dbUser:ID_utilisateur,
   dbPassword:mot_de_passe,
   sql:\"SELECT N_NAME FROM NATION WHERE N_NATIONKEY < 10\"
   }"
https://localhost/tuning/webve
Sortie
{        
"code" :0 ,
"link" :"http://localhost:8080/ tuning/showwebve/webve/1394679279138-
      6626301199030/"
} 

Exemple 2

Cet exemple utilise cURL pour transmettre une instruction SQL à l'API webve. Toutefois, une erreur se produit car la table ID_utilisateur.NATION n'est pas définie.

Entrée
curl
--insecure
-X POST
-H "Content-Type: application/json; charset=UTF-8"
--data "{
   dbType:ZOS,
   dbHost:hôte,
   dbPort:numéro_port,
   dbName:sous-système,
   dbUser:ID_utilisateur,
   dbPassword:mot_de_passe,
   sql:\"SELECT N_NAME FROM NATION WHERE N_NATIONKEY < 10\",
   }"
https://localhost/tuning/webve
Sortie
{ 
"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: ID_utilisateur.NATION IS AN
      UNDEFINED NAME.
   SQLCODE=-204, SQLSTATE=42704, DRIVER=3.67.24..."
}

Feedback