compareworkload: EXPLAIN-Momentaufnahmen vergleichen

Nachdem Sie den Namen einer einzelnen Abfrageworkload oder die Namen von zwei Abfrageworkloads an die compareworkload-API übergeben haben, gibt die API einen Vergleich der beiden aktuellsten EXPLAIN-Momentaufnahmen für die einzelne Abfrageworkload oder einen Vergleich der beiden aktuellen EXPLAIN-Momentaufnahmen für die beiden Abfrageworkloads zurück.

Vergleichstypen

Typ 1
Vergleichen Sie die früheren und aktuellen EXPLAIN-Momentaufnahmen für eine einzelne Abfrageworkload.
Typ 2
Vergleichen Sie die aktuellen EXPLAIN-Momentaufnahmen zweier Abfrageworkloads, die sich im selben Subsystem befinden.
Typ 3
Vergleichen Sie die aktuellen EXPLAIN-Momentaufnahmen zweier Abfrageworkloads, die sich in unterschiedlichen Subsystemen wie Test- und Produktionssubsystemen befinden.

Eingabeparameter

Übergeben Sie die folgenden Paare von Schlüsseln und Werten über diese URL an die API: https://localhost/tuning/compareworkload

Tabelle 1. Eingabeparameter. In dieser Tabelle werden die Eingabeparameter für die compareworkload-Web-API aufgelistet.
Kategorie Key (Schlüssel) Wert Mögliche Werte Optional?
Verbindung 1 dbType Der Typ des Datenservers. ZOS Nein
dbHost Der Host des Datenservers. Domänenname oder IP-Adresse Nein
dbPort Die Portnummer des Datenservers   Nein
dbName Der Name des Datenservers   Nein
dbUser Die bei der Herstellung einer Verbindung zum Datenserver zu verwendende ID.   Nein
dbPassword Das bei der Herstellung einer Verbindung zum Datenserver zu verwendende Kennwort.   Nein
Verbindung 2 dbHost2 Der Host des Datenservers.   Nur für Vergleiche des Typs 3.
dbPort2 Die Portnummer des Datenservers   Nur für Vergleiche des Typs 3.
dbName2 Der Name des Datenservers   Nur für Vergleiche des Typs 3.
dbUser2 Die bei der Herstellung einer Verbindung zum Datenserver zu verwendende ID.   Nur für Vergleiche des Typs 3.
dbPassword2 Das bei der Herstellung einer Verbindung zum Datenserver zu verwendende Kennwort.   Nur für Vergleiche des Typs 3.
Abfrageworkloads workload Der Name der Abfrageworkload mit der früheren EXPLAIN-Momentaufnahme, die im Vergleich verwendet werden soll.   Nein
workload2 Der Name der Abfrageworkload mit der späteren EXPLAIN-Momentaufnahme, die im Vergleich verwendet werden soll. Der Name kann mit dem ersten Namen identisch sein, wenn Sie zwei EXPLAIN-Momentaufnahmen einer einzelnen Abfrageworkload vergleichen wollen.   Nur für Vergleiche des Typs 1 und 2.
Optionen zum Filtern von SQL-Anweisungen apChanged Gibt an, dass die SQL-Anweisungen angezeigt werden sollen, für die die Zugriffspläne sich geändert haben. true oder false. Die Groß-/Kleinschreibung muss nicht beachtet werden. Ja
costRegressed Gibt an, dass die SQL-Anweisungen angezeigt werden sollen, für die der geschätzte Aufwand sich um einen Betrag erhöht hat, der mindestens gleich dem von Ihnen angegebenen Prozentsatz ist. Eine Ganzzahl von 0 bis 100.  
operator Gibt an, ob die SQL-Anweisungen angezeigt werden sollen, die mit dem Wert übereinstimmen, der für die Schlüssel apChanged und costRegressed festgelegt wurde, oder ob SQL-Anweisungen angezeigt werden sollen, die mit dem Wert übereinstimmen, der für einen der beiden Schlüssel festgelegt wurde. and oder or. Die Groß-/Kleinschreibung muss nicht beachtet werden. und

Ausgabeparameter

Die API übergibt die folgenden Paare von Schlüsseln und Werten:

Tabelle 2. Ausgabeparameter
Schlüssel Wert
code Der Rückkehrcode vom Web-API.
0
Ohne Warnungen beendet
4
Mit Warnungen beendet
8
Infolge eines Fehlers ohne Abschluss beendet
state
0
Entweder keine der SQL-Anweisungen erfüllt die Bedingungen, die für den Schlüssel apChanged oder costRegressed angegeben wurden, oder es wurden weder für apChanged noch für costRegressed Werte angegeben.
1
Mindestens eine SQL-Anweisung erfüllt die Bedingung, die für den Schlüssel costRegressed angegeben wurde.
2
Mindestens eine SQL-Anweisung erfüllt die Bedingung, die für den Schlüssel apChanged angegeben wurde.
3
Mindestens eine SQL-Anweisung erfüllt die Bedingungen, die für die Schlüssel apChanged und costRegressed angegeben wurden.
4
Mindestens eine SQL-Anweisung erfüllt die Bedingung, die für den Schlüssel apChanged angegeben wurde, und mindestens eine SQL-Anweisung erfüllt die Bedingung, die für den Schlüssel costRegressed angegeben wurde.
link Die URL für den Bericht, der die Zugriffspläne in den beiden EXPLAIN-Momentaufnahmen vergleicht. Der Link läuft standardmäßig nach 7 Tagen ab. Sie können diesen Zeotraum in der Datei tuning_service.properties ändern.
output Die Anzahl von SQL-Anweisungen, die die Filterkriterien erfüllen und für die Informationen im Bericht vorhanden sind.
message Fehler- oder Warnnachrichten.
exception Informationen zu einer eventuell aufgetretenen Ausnahmebedingung. Diese Informationen können dem IBM Support während der Arbeit für Sie bei der Fehlerbehebung helfen.

Beispiel 1

Dieses Beispiel verwendet cURL, um den Namen einer Abfrageworkload an die compareworkload-API zu übergeben. Die Anforderung gibt auch an, dass nur über die SQL-Anweisungen berichtet werden soll, deren Ausführungsaufwand um mindestens 30 % gestiegen ist. Die API vergleicht die beiden aktuellsten EXPLAIN-Momentaufnahmen für die Abfrageworkload, generiert einen Bericht über den Vergleich und gibt folgende Informationen zurück:
  • Die Anzahl von SQL-Anweisungen, die die Filterbedingungen erfüllt haben
  • Die URL, über die Sie auf den Bericht zugreifen können
Eingabe
curl 
--insecure 
-X POST 
-H "Content-Type: application/json; charset=UTF-8"
--data "{ 
   dbType:ZOS, 
   dbHost:Host,
   dbPort:Portnummer,
   dbName:Subsystem,
   dbUser:Benutzer-ID,
   dbPassword:Kennwort,
   workload:Sample_Workload_1,
   apChanged:\"true\"
   costRegressed:30,
   operator:\"and\"
   }"
https://localhost/tuning/compareworkload
Ausgabe
{        
"code" :4 , 
"state" :2,       
"output" :"11" ,        
"link" :"http://localhost:8080/tuning/download/wapc/1394687451884-
      14798931739894/ComparisonReport_1.html"}

Beispiel 2

In diesem Beispiel wird cURL verwendet, um die Namen der beiden Abfrageworkloads an die compareworkload-API zu übergeben. Die Abfrageworkloads werden auf demselben Subsystem ausgeführt. Die Anforderung gibt auch an, dass nur über die SQL-Anweisungen berichtet werden soll, deren Ausführungsaufwand um mindestens 20 % gestiegen ist. Die API vergleicht die aktuellsten EXPLAIN-Momentaufnahmen für die beiden Abfrageworkloads, generiert einen Bericht über den Vergleich und gibt folgende Informationen zurück:
  • Die Anzahl von SQL-Anweisungen, die die Filterbedingungen erfüllt haben
  • Die URL, über die Sie auf den Bericht zugreifen können
curl 
--insecure 
-X POST 
-H "Content-Type: application/json; charset=UTF-8"
--data "{ 
   dbType:ZOS, 
   dbHost:Host,
   dbPort:Portnummer,
   dbName:Subsystem,
   dbUser:Benutzer-ID,
   dbPassword:Kennwort,
   workload:Sample_Workload,
   workload2:Sample_Workload2,
   costRegressed:20,
   apChanged:\"true\"
   }"
https://localhost/tuning/compareworkload

Die Ausgabe der API gleicht der Ausgabe in Beispiel 1.

Beispiel 3

In diesem Beispiel wird cURL verwendet, um die Namen der beiden Abfrageworkloads an die compareworkload-API zu übergeben. Die Abfrageworkloads werden auf zwei verschiedenen Subsystem ausgeführt. Die Anforderung gibt auch an, dass nur über die SQL-Anweisungen berichtet werden soll, deren Ausführungsaufwand um mindestens 20 % gestiegen ist. Die API vergleicht die aktuellsten EXPLAIN-Momentaufnahmen für die beiden Abfrageworkloads, generiert einen Bericht über den Vergleich und gibt folgende Informationen zurück:
  • Die Anzahl von SQL-Anweisungen, die die Filterbedingungen erfüllt haben
  • Die URL, über die Sie auf den Bericht zugreifen können
curl 
--insecure 
-X POST 
-H "Content-Type: application/json; charset=UTF-8"
--data "{ 
   dbType:ZOS, 
   dbHost:Host_für_die_erste_Verbindung,
   dbPort:Portnummer,
   dbName:Subsystem,
   dbUser:Benutzer-ID,
   dbPassword:Kennwort,
   dbHost2:Host_für_die_zweite_Verbindung,
   dbPort2:Portnummer,
   dbName2:Subsystem,
   dbUser2:Benutzer-ID,
   dbPassword2:Kennwort,
   workload:Sample_Workload,
   workload2:Sample_Workload2,
   costRegressed:50,
   apChanged:\"true\",
   operator:\"or\"
   }"
https://localhost/tuning/compareworkload

Die Ausgabe der API gleicht der Ausgabe in Beispiel 1.


Feedback