compareworkload: Comparaison des images instantanées EXPLAIN

Une fois que vous avez transmis à l'API compareworkload le nom d'une charge de travail de requête unique ou les noms de deux charges de travail de requête, l'API renvoie une comparaison des deux dernières images instantanées EXPLAIN de la charge de travail de requête unique ou une comparaison des deux images instantanées EXPLAIN actuelles des deux charges de travail de requête.

Types de comparaison

Type 1
Compare l'image instantanée EXPLAIN précédente et l'image instantanée EXPLAIN actuelle d'une charge de travail de requête unique.
Type 2
Compare les images instantanées EXPLAIN actuelles de deux charges de travail de requête qui se trouvent sur le même sous-système.
Type 3
Compare les images instantanées EXPLAIN actuelles de deux charges de travail de requête qui se trouvent sur des sous-systèmes différents, par exemple un sous-système de test et un sous-système de production.

Paramètres d'entrée

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

Tableau 1. Paramètres d'entrée. Tableau répertoriant les paramètres d'entrée de l'API Web compareworkload.
Catégorie Clé Valeur Valeurs admises Facultatif ?
Connexion 1 dbType Type de serveur de données. ZOS Non
dbHost Hôte du serveur de données. Nom du domaine ou adresse IP. Non
dbPort Numéro de port du serveur de données.   Non
dbName Nom du serveur de données.   Non
dbUser ID à utiliser lors de la connexion au serveur de données.   Non
dbPassword Mot de passe à utiliser lors d'une connexion au serveur de données.   Non
Connexion 2 dbHost2 Hôte du serveur de données.   Pour les comparaisons de type 3 uniquement.
dbPort2 Numéro de port du serveur de données.   Pour les comparaisons de type 3 uniquement.
dbName2 Nom du serveur de données.   Pour les comparaisons de type 3 uniquement.
dbUser2 ID à utiliser lors de la connexion au serveur de données.   Pour les comparaisons de type 3 uniquement.
dbPassword2 Mot de passe à utiliser lors d'une connexion au serveur de données.   Pour les comparaisons de type 3 uniquement.
Charges de travail de requête workload Nom de la charge de travail de requête associée à l'image instantanée EXPLAIN antérieure à utiliser lors de la comparaison.   Non
workload2 Nom de la charge de travail de requête associée à l'image instantanée EXPLAIN ultérieure à utiliser lors de la comparaison. Le nom peut correspondre au premier nom si vous souhaitez comparer deux images instantanées EXPLAIN d'une même charge de travail de requête.   Pour les comparaisons de type 1 et 2 uniquement.
Options de filtrage des instructions SQL apChanged Indique que le système doit afficher les instructions SQL dont les plans d'accès ont été modifiés. true ou false. Il n'y a pas de distinction entre les majuscules et les minuscules. Oui
costRegressed Demande d'afficher les instructions SQL dont l'augmentation des coûts estimés est supérieure ou égale au pourcentage indiqué. Entier compris entre 0 et 100.  
operator Indique si le système doit afficher les instructions SQL correspondant à la valeur définie pour les deux clés apChanged et costRegressed ou afficher les instructions SQL correspondant à la valeur définie pour l'une de ces clés. and ou or. Il n'y a pas de distinction entre les majuscules et les minuscules. and

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
state
0
Aucune des instructions SQL ne remplit les conditions indiquées pour les clés apChanged ou costRegressed ou les valeurs des clés apChanged et costRegressed n'ont pas été indiquées.
1
Une ou plusieurs instructions SQL remplissent la condition indiquée pour la clé costRegressed.
2
Une ou plusieurs instructions SQL remplissent la condition indiquée pour la clé apChanged.
3
Une ou plusieurs instructions SQL remplissent les conditions indiquées pour les deux clés apChanged et costRegressed.
4
Une ou plusieurs instructions SQL remplissent la condition indiquée pour la clé apChanged et une ou plusieurs instructions SQL remplissent la condition indiquée pour la clé costRegressed.
link URL du rapport qui compare les plans d'accès des deux images instantanées EXPLAIN. Par défaut, le lien expire au bout de sept jours. Vous pouvez modifier cette durée dans le fichier tuning_service.properties.
output Nombre d'instructions SQL répondant aux critères de filtrage et pour lesquelles le rapport contient des informations.
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 le nom d'une charge de travail de requête à l'API compareworkload. La requête demande également de générer un rapport pour les instructions SQL dont le coût d'exécution a augmenté d'au moins 30 %. L'API compare les deux dernières images instantanées EXPLAIN de la charge de travail de requête, génère un rapport de comparaison et renvoie les informations suivantes :
  • Le nombre d'instructions SQL répondant aux critères de filtrage
  • L'URL à utiliser pour accéder au rapport
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,
   workload:Sample_Workload_1,
   apChanged:\"true\"
   costRegressed:30,
   operator:\"and\"
   }"
https://localhost/tuning/compareworkload
Sortie
{        
"code" :4 ,
"state" :2,
"output" :"11" ,
"link" :"http://localhost:8080/tuning/download/wapc/1394687451884-
      14798931739894/ComparisonReport_1.html"}

Exemple 2

Cet exemple utilise cURL pour transmettre les noms de deux charges de travail de requête à l'API compareworkload. Les charges de travail de requête s'exécutent sur le même sous-système. La requête demande également d'inclure dans le rapport uniquement les instructions SQL dont le coût d'exécution a augmenté d'au moins 20 %. L'API compare les dernières images instantanées EXPLAIN des deux charges de travail de requête, génère un rapport de comparaison et renvoie les informations suivantes :
  • Le nombre d'instructions SQL répondant aux critères de filtrage
  • L'URL à utiliser pour accéder au rapport
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,
   workload:Sample_Workload,
   workload2:Sample_Workload2,
   costRegressed:20,
   apChanged:\"true\"
   }"
https://localhost/tuning/compareworkload

La sortie de l'API est identique à la sortie présentée à l'exemple 1.

Exemple 3

Cet exemple utilise cURL pour transmettre les noms de deux charges de travail de requête à l'API compareworkload. Les charges de travail de requête s'exécutent sur deux sous-systèmes distincts. La requête demande également d'inclure dans le rapport uniquement les instructions SQL dont le coût d'exécution a augmenté d'au moins 20 %. L'API compare les dernières images instantanées EXPLAIN des deux charges de travail de requête, génère un rapport de comparaison et renvoie les informations suivantes :
  • Le nombre d'instructions SQL répondant aux critères de filtrage
  • L'URL à utiliser pour accéder au rapport
curl
--insecure
-X POST
-H "Content-Type: application/json; charset=UTF-8"
--data "{
   dbType:ZOS,
   dbHost:hôte_de_la_dernière_connexion,
   dbPort:numéro_port,
   dbName:sous-système,
   dbUser:ID_utilisateur,
   dbPassword:mot_de_passe,
   dbHost2:hôte_de_la_seconde_connexion,
   dbPort2:numéro_de_port,
   dbName2:sous-système,
   dbUser2:ID_utilisateur,
   dbPassword2:mot_de_passe,
   workload:Sample_Workload,
   workload2:Sample_Workload2,
   costRegressed:50,
   apChanged:\"true\",
   operator:\"or\"
   }"
https://localhost/tuning/compareworkload

La sortie de l'API est identique à la sortie présentée à l'exemple 1.


Feedback