Wichtig:
Bevor Sie die Funktion Explain PLAN_TABLE verwenden: Lesen Sie
den Abschnitt LISTSQL and Explain Functions unter
Special Requirements for Natural Tools for DB2 in der
Installing
Natural for DB2 on z/OS-Dokumentation.
Die Funktion Explain PLAN_TABLE der
Natural Tools for Db2 interpretiert die Ergebnisse von SQL
EXPLAIN-Kommandos aus Ihrer PLAN_TABLE
. Die in Ihrer
PLAN_TABLE
enthaltenen Informationen werden in so genannten
Explanations (Erklärungen) dargestellt.
Die Explanations einer PLAN_TABLE
beschreiben die von Db2 gewählten Zugriffspfade zur Ausführung von
SQL-Statements.
Ein SQL-Statement wird von Db2 in einem oder mehreren Schritten
ausgeführt. Für jeden Ausführungsschritt wird eine Zeile in die
PLAN_TABLE
eingefügt. Alle Zeilen zusammen, die den Zugriffspfad
für ein SQL-Statement beschreiben, werden als "Explanation"
bezeichnet.
Die Explanations werden in der PLAN_TABLE
durch eine
Kombination aus Plan Name (Plan-Name), DBRM
Name (Name des Datenbankanforderungsmoduls) und Query
Number (Abfragenummer) oder Collection Name
(Sammlungsname), Package Name und Query
Number (Abfragenummer) identifiziert.
In diesem Abschnitt werden die folgenden Themen behandelt:
Db2 bietet drei Arten, SQL-Statements zu erklären:
Je nach Art unterscheiden sich die Bezeichnungen der Erklärungen.
Führt ein SQL EXPLAIN
-Kommando
dynamisch aus, wobei die Erklärung in die PLAN_TABLE
Ihrer
aktuellen SQLID eingefügt wird.
Das EXPLAIN
-Kommando kann in der
Catalog
Maintenance-Funktion und der
Interactive
SQL-Funktion der Natural Tools for
Db2 abgesetzt werden. Außerdem können Sie mit dem Natural-Kommando
LISTSQL
SQL-Statements aus katalogisierten Natural-Programmen extrahieren und mit dem
SQL EXPLAIN
-Kommando für die extrahierten
SQL-Statements absetzen.
Wenn Sie das SQL EXPLAIN
-Kommando
dynamisch absetzen, sollten Sie eine Query-Nummer angeben, damit Sie die
Erklärung in der PLAN_TABLE
identifizieren können. Die gleiche
Query-Nummer sollte für zugehörige Statements verwendet werden.
Abhängig von der Methode, mit der das vom dynamischen
SQL-Prozessor verwendete DBRM in den Plan eingebunden wird, verwendet Db2 zwei
verschiedene Methoden zur Identifizierung von Zeilen in der
PLAN_TABLE
:
Das DBRM wird direkt in den Plan eingebunden.
Wenn eine Erklärung eingefügt wird, werden der Plan Name, der DBRM Name und die Query Number von Db2 wie folgt bestimmt:
Parameter | Beschreibung |
---|---|
plan name |
Wird leer gelassen. |
DBRM name |
Ist der Name des vom dynamischen SQL-Prozessor verwendeten DBRM |
query number |
Ist gleich der Query-Nummer, die Sie mit dem
EXPLAIN -Kommando angegeben haben (die
Standard-Query-Nummer ist 1 ).
|
Dieser Explain-Modus wird als dynamischer Modus bezeichnet.
Das DBRM wird als Package in den Plan eingebunden.
Wenn eine Explanation (Erklärung) eingefügt wird, werden der Collection Name (Sammlungsname), der Package Name (Paketname) und die Query Number (Abfragenummer) von Db2 wie folgt bestimmt:
Parameter | Beschreibung |
---|---|
collection name |
Ist der Name der Collection, die das Package enthält. |
package name |
Ist der Name des Package, das vom dynamischen SQL-Prozessor verwendet wird. |
query number |
Ist gleich der Abfragenummer, die Sie mit dem
EXPLAIN -Kommando angegeben haben (die
Standardabfragenummer ist 1 ).
|
This explanation mode is called package mode.
Bindet einen Anwendungsplan mit der Option EXPLAIN
YES, wobei die Erklärung in die PLAN_TABLE
des
Eigentümers des Plans eingefügt wird. Wenn eine Erklärung eingefügt wird,
werden der Plan Name, der DBRM Name
und die Query Number von Db2 wie folgt bestimmt:
Parameter | Beschreibung |
---|---|
plan name |
Ist der Name des Plans. |
DBRM name |
Ist der Name des DBRM, das das SQL-Statement enthält. |
query number |
Ist gleich der Statement-Nummer
(stmtno ), die durch den Db2-Precompiler
generiert wird.
|
Bindet ein Package mit der Option EXPLAIN
YES, wobei die Erklärung in die PLAN_TABLE
des
Eigentümers des Package eingefügt wird.
Wenn eine Erklärung eingefügt wird, werden der Collection Name, der Package Name und die Query Number von Db2 wie folgt ermittelt:
Parameter | Beschreibung |
---|---|
collection name |
Ist der Name der Sammlung, die das Package enthält. |
package name |
Ist der Name des Package, das das SQL-Statement enthält. |
query number |
Ist gleich der Statement-Nummer
(stmtno ), die durch den Db2-Precompiler
generiert wird.
|
Erklärungen (Explanations) können entweder nach Plan Name, DBRM Name und Query Number oder nach Collection Name, Package Name und Query Number ausgewählt werden.
Wenn Sie ein EXPLAIN
-Kommando mehrmals
absetzen, ist es möglich, dass mehrere Erklärungen durch eine gegebene
Kombination dieser Auswahlfelder identifiziert werden. Sie können also entweder
alle Erklärungen oder nur die jüngste auswählen. Es wird eine Liste mit allen
ausgewählten Erklärungen angezeigt, aus der Sie einzelne Zeilen für eine
genauere Beschreibung auswählen können:
Die einzelnen Zeilen einer PLAN_TABLE
werden
nacheinander angezeigt.
Zeilen, die dasselbe SQL-Statement beschreiben, werden zusammen als eine Erklärung angezeigt.
Unterschiedliche Erklärungen werden durch Leerzeilen getrennt.
Sie können durch die Liste blättern und einen detaillierten Report für einzelne Erklärungen auswählen.
Wenn Zeilen in Ihre PLAN_TABLE
als Ergebnis eines
Natural-Systemkommandos LISTSQL
eingefügt worden sind, werden auch die Namen der Natural Library und des
Programms angezeigt.
Um die Funktion Explain PLAN_TABLE aufzurufen:
Geben Sie im Natural Tools for DB2 Main
Menu den Funktionscode X
ein.
Der Bildschirm Explain PLAN_TABLE wird angezeigt:
16:45:35 ***** NATURAL TOOLS FOR DB2 ***** 2009-10-30 - Explain PLAN_TABLE - Code Function L List PLAN_TABLE - Latest Explanations A List PLAN_TABLE - All Explanations D Delete from PLAN_TABLE ? Help . Exit Code .. _ Mode ........ DYNAMIC_ ( Dynamic, Plan, Package ) Plan ........ ________ Collection .. ________ DBRM/Package ________ Queryno ..... _____ - _____ Command ===> Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Setup Exit Canc |
Mit PF2 (Setup) kann die maximale Länge einer
Spalte und die Anzahl der festen Zeichen beim Blättern nach links festgelegt
werden. Die Standardwerte für beide Parameter können im Subprogramm
CONFIG
in der Bibliothek SYSDB2 geändert werden.
Wenn ein Spaltenwert länger als die maximale Länge ist, wird
er abgeschnitten und mit einem Größer-als-Symbol (>) gekennzeichnet, was
bedeutet, dass Zeichenketten am rechten Ende abgeschnitten werden, oder mit
einem Kleiner-als-Symbol (<), was bedeutet, dass Zahlen am linken Ende
abgeschnitten werden. Beachten Sie, dass für weitere Kommandos in einer Zeile,
z. B. das Zeilenkommando I
, nur der sichtbare Wert
als Eingabe verwendet werden kann. Dies bedeutet, dass Kommandos in Zeilen
fehlschlagen, wenn die Werte für die weitere Verarbeitung abgeschnitten werden.
16:45:35 ***** NATURAL TOOLS FOR DB2 ***** 2009-10-30 - Explain PLAN_TABLE - Code Function +----------Explain PLAN_TABLE----------+ ! ! L List PLAN_T ! Maximum length of columns ... ___12 ! A List PLAN_T ! Number of fixed characters .. ____0 ! D Delete from ! ! ? Help ! ! . Exit +--------------------------------------+ Code .. _ Mode ........ DYNAMIC_ ( Dynamic, Plan, Package ) Plan ........ ________ Collection .. ________ DBRM/Package ________ Queryno ..... _____ - _____ Command ===> Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Setup Exit Canc |
Die folgenden Funktionen sind verfügbar:
Code | Beschreibung |
---|---|
L |
Die Funktion List PLAN_TABLE - Latest Explanations listet die letzte Erklärung für eine beliebige Kombination der unten beschriebenen Parameter auf. |
A |
Die Funktion List PLAN_TABLE - All Explanations listet alle Erklärungen für eine beliebige Kombination der unten beschriebenen Parameter auf. |
D |
Die Funktion Delete from
PLAN_TABLE löscht die angegebenen Erklärungen aus Ihrer
PLAN_TABLE .
|
Die folgenden Parameter können angegeben werden:
Parameter | Beschreibung |
---|---|
Mode |
Gibt den Explanation Mode an ( Dynamic, Plan oder Package). |
Plan
plan-name |
Gibt einen gültigen Plan-Namen an.
Der Parameter |
Collection
collection-name |
Gibt einen gültigen Collection-Namen an.
Der Parameter |
DBRM/Package
dbrm/package-name
|
Gibt im Plan Mode einen gültigen DBRM-Namen an.
Gibt im Package Mode einen gültigen Package-Namen an. Gibt im Dynamic Mode das DBRM an, das vom dynamischen SQL-Prozessor verwendet wird. Wenn ein Wert gefolgt von einem Stern (*) angegeben wird, werden alle DBRMs/Packages des angegebenen Plans/der angegebenen Collection berücksichtigt, deren Namen mit dem angegebenen Wert beginnen. Wird nur Stern-Notation benutzt, werden alle DBRMs/Packages des angegebenen Plans/der angegebenen Collection berücksichtigt. Mit dem Parameter
|
Queryno no.1
- no.2 |
Dieser Parameter gibt einen gültigen Bereich von
Query-Nummern an, für den die folgenden Regeln gelten:
|
Diese Funktion listet nur die neueste Erklärung für eine beliebige Kombination von entweder Plan Name, DBRM Name und Query Number oder Package Name, Collection Name und Query Number auf.
Diese Funktion listet alle Erklärungen für eine beliebige Kombination von entweder Plan Name, DBRM Name und Query Number oder Package Name, Collection Name und Query Number auf. Die Query Number-Parameter werden wie oben interpretiert.
11:04:04 ***** NATURAL TOOLS FOR DB2 ***** 2007-09-05 Plan TESTPLAN S 01 Row 0 of 152 Columns 032 075 ====> Scroll ===> PAGE DBRM QNO ME ACC MA IO PRE SORTN SORTC TCREATOR TABLENAME ** ******************************* top of data ******************************* __ TEST 722 I 1 - ---- ---- SAGCRE DEPT __ TEST 722 1 I 1 - ---- ---- SAGCRE EMP __ TEST 722 3 - ---- --O- __ TEST 722 I 1 - ---- ---- SAGCRE DEPT __ TEST 722 I 1 Y ---- ---- SAGCRE EMP __ TEST 722 I 1 - ---- ---- SAGCRE DEPT __ __ TEST 761 I 1 - ---- ---- SAGCRE EMP __ TEST 761 1 I 1 - ---- ---- SAGCRE DEPT __ TEST 761 3 - ---- --O- __ TEST 761 I 1 - ---- ---- SAGCRE EMP __ TEST 761 I 1 Y ---- ---- SAGCRE DEPT __ __ TEST 793 I 1 - ---- ---- SAGCRE DEPT __ TEST 793 1 I 1 - ---- ---- SAGCRE EMP __ TEST 793 1 I 1 - ---- ---- SAGCRE EMP Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Exit Rfind - + < > Canc |
Die folgenden Zeilenkommandos sind in den Auflistungen der Funktion Explain PLAN_TABLE verfügbar. Die Zeilenkommandos werden vor einer der Zeilen der gewünschten Erklärung(en) eingegeben.
Kommando | Beschreibung |
---|---|
I |
Zeigt ein Fenster an, in dem zusätzliche Informationen zu einer Erklärung ausgewählt werden können. |
S |
Wählt eine Erklärung aus, die mit dem unten
beschriebenen INFO -Kommando verwendet werden
soll.
|
U |
Macht die Auswahl einer Erklärung zur Verwendung mit dem
INFO -Kommando rückgängig.
|
Eine Liste der verfügbaren Zeilenkommandos kann als Fenster
aufgerufen werden, indem das Hilfezeichen, d.h. ein Fragezeichen
(?
), vor einer der aufgelisteten Zeilen eingegeben wird.
Neben den Zeilenkommandos kann auch das
INFO
-Kommando angegeben werden. Das
INFO
-Kommando muss in der Kommandozeile des
Auflistungsbildschirms eingegeben werden und ist das Äquivalent zum
Zeilenkommando I
. Das
INFO
-Kommando zeigt ein Fenster, in dem zusätzliche
Informationen zu allen zuvor mit dem Zeilenkommando
S
ausgewählten Erläuterungen ausgewählt werden
können.
Im Plan Mode wird das folgende Fenster angezeigt, in dem Sie auswählen können, welche Zusatzinformationen angezeigt oder gedruckt werden sollen.
16:48:24 ***** NATURAL TOOLS FOR DB2 ***** 2009-10-30 Plan TESTPLAN S 01 Row 0 of 82 Columns 048 100 ====> Scroll ===> PAGE DBRM QNO ME ACC MA IO PRE SORTN SORTC TCREATOR TABLENAME ** **** +---------------------------------------------------------+*********** __ TEST ! ! __ TEST ! Select what to display ! __ TEST ! ! __ TEST ! _ information about plan ! __ TEST ! _ statements of plan ! __ TEST ! _ data from PLAN_TABLE ! __ ! _ evaluation of PLAN_TABLE ! __ TEST ! _ catalog statistics ! __ TEST ! _ columns of used indexes ! __ TEST ! ! __ TEST ! Mark _ to print output ! __ TEST ! ! __ +---------------------------------------------------------+ __ TEST 793 I 1 - ---- ---- SAGCRE DEPT __ TEST 793 1 I 1 - ---- ---- SAGCRE EMP __ TEST 793 1 I 1 - ---- ---- SAGCRE EMP Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Exit Rfind - + < > Canc |
Analog dazu wird im Package Mode das folgende Fenster angezeigt:
16:48:24 ***** NATURAL TOOLS FOR DB2 ***** 2009-10-30 Package TESTPACK S 01 Row 0 of 82 Columns 048 100 ====> Scroll ===> PAGE DBRM +---------------------------------------------------------+ ** **** ! ! ********** __ TEST ! ! ES __ TEST ! Select what to display ! ES __ TEST ! ! ES __ TEST ! _ information about package ! ES __ TEST ! _ statements of package ! ES __ TEST ! _ data from PLAN_TABLE ! ES __ ! _ evaluation of PLAN_TABLE ! ES __ TEST ! _ catalog statistics ! ES __ TEST ! _ columns of used indexes ! ES __ TEST ! ! ES __ TEST ! Mark _ to print output ! ES ** **** +---------------------------------------------------------+ ********** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Exit Rfind - + < > Canc |
Das Blättern in den angezeigten Daten erfolgt mit Browse-Kommandos, von denen die wichtigsten auch über PF-Tasten abgesetzt werden können; siehe Mit den Natural Tools for Db2 editieren.
Option | Beschreibung |
---|---|
Information about plan/package | Wenn ein Plan/Package-Name angegeben wurde, enthält
diese Option Informationen aus dem Db2-Katalog, z. B. Datum und Uhrzeit der
Bindung sowie verschiedene Bindungsoptionen.
Im Dynamic Mode ist diese Option nicht verfügbar. |
Statements of plan/package | Wenn ein Plan/Package-Name angegeben wurde, liefert
diese Option Informationen zu den erklärten SQL-Statements, die in diesem
Package enthalten sind. Diese Informationen werden dem Db2-Katalog entnommen.
Im Dynamic Mode ist diese Option nicht verfügbar. |
Data from PLAN_TABLE | Diese Option liefert Informationen aus der
PLAN_TABLE über die ausgewählten Zeilen.
|
Evaluation of PLAN_TABLE | Diese Option liefert eine Beschreibung der PLAN_TABLE.
Sie beschreibt für jeden Ausführungsschritt:
|
Catalog statistics | Diese Option liefert statistische Informationen aus dem Db2-Katalog. |
Columns of used indexes | Diese Option liefert die Spalten der verwendeten Indizes einschließlich der Katalogstatistiken zu diesen Spalten. |
Die Funktion Delete from PLAN_TABLE wird auch
verwendet, um PLAN_TABLE
-Erklärungen in Abhängigkeit von der
angegebenen Kombination von entweder Plan Name,
DBRM Name und Query Number oder
Collection Name, Package Name und
Query Number auszuwählen. Diesmal werden die ausgewählten
PLAN_TABLE
-Erklärungen jedoch nicht angezeigt, sondern
gelöscht.
Die Funktion Delete from PLAN_TABLE ist
nützlich, um alte Daten zu löschen, bevor ein Plan gebunden oder neu gebunden
wird oder bevor ein SQL EXPLAIN
-Kommando ausgeführt
wird.
Um zu verhindern, dass PLAN_TABLE
-Erklärungen ungewollt
gelöscht werden, werden Sie um eine Bestätigung gebeten:
16:50:23 ***** NATURAL TOOLS FOR DB2 ***** 2009-10-30 - Delete from PLAN_TABLE - The SQL Command DELETE FROM PLAN_TABLE WHERE APPLNAME = ' ' AND COLLID = 'OLD' AND PROGNAME LIKE 'ANY%' AND QUERYNO BETWEEN 1 AND 2 will be executed. Press PF5 to delete the data from the PLAN_TABLE or PF3 to return to the menu without deleting data Command ===> Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Exit Del Canc |
Abgesehen von den globalen PF-Tasten-Belegungen wird bei der Funktion Delete from PLAN_TABLE der Funktion Explain PLAN_TABLE die Taste PF5 (Del) verwendet, um das Löschen von zuvor ausgewählten Erklärungen zu bestätigen.
Für die Online-Massenverarbeitung und die Ausführung im Batch-Modus steht auch eine angepasste Explain PLAN_TABLE-Funktion zur Verfügung.
Für die Online-Massenverarbeitung steht eine modifizierte Version der Funktion Explain PLAN_TABLE zur Verfügung.
Um die modifizierte Version der Explain PLAN_TABLE-Funktion aufzurufen:
Melden Sie sich in der Natural Library SYSDB2 an.
Geben Sie in der Kommandozeile das Kommando
EXPLAINB
ein und drücken Sie Enter.
Folgendes wird angezeigt:
16:45:35 ***** NATURAL TOOLS FOR DB2 ***** 2009-10-30 - Explain PLAN_TABLE - Code Function L List PLAN_TABLE - Latest Explanations A List PLAN_TABLE - All Explanations O Output Options . Exit Code .. _ Mode .......... DYNAMIC_ ( Dynamic, Plan, Package ) Plan .......... ________ Collection .... __________________ DBRM/Package .. ________ Queryno ....... _____ - _____ Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Exit Canc |
Zusätzlich zu den Funktionscodes L
(Funktion
List PLAN_TABLE - Latest Explanations) und A
(Funktion List PLAN_TABLE - All Explanations) steht der
Funktionscode O
(Output Options) zur
Verfügung.
Mit der Funktion Output Options können
Sie die Ausgabe von Informationen zu PLAN_TABLE
-Einträgen
einschränken. Die verschiedenen Optionen werden in einem Fenster aufgelistet,
das durch Eingabe des Funktionscodes O
im obigen Menü
Explain PLAN_TABLE aufgerufen wird. Das Fenster ähnelt
demjenigen, das durch die Online-Kommandos I
oder
INFO
aufgerufen wird.
16:53:20 ***** NATURAL TOOLS FOR DB2 ***** 2009-10-30 - Explain PLAN_TABLE - +---------------------------------------------------------+ ! ! ! ! ! Select what to display ! ! ! ! _ information about plan/package ! ! _ statements of plan/package ! ! _ data from PLAN_TABLE ! ! _ evaluation of PLAN_TABLE ! ! _ catalog statistics ! ! _ columns of used indexes ! kage ) ! ! ! ! +---------------------------------------------------------+ Queryno ....... _____ - _____ Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Exit Canc |
Wurde die Funktion Output Options gewählt, werden nur die Informationen gedruckt, die unter die für die Ausgabe markierten Optionen fallen.
Wurde der Funktionscode O
nicht gewählt, werden
alle Informationen zu den Einträgen der PLAN_TABLE
gedruckt, die
unter die im obigen Fenster aufgeführten Optionen fallen.
In beiden Fällen werden Sie aufgefordert, einen Drucker anzugeben.
Die Funktionalität von EXPLAINB
ist
neben der Online-Massenverarbeitung insbesondere für die Batch-Verarbeitung
vorgesehen. Wird EXPLAINB
im Batch-Modus verwendet,
erfolgt die Ausgabe in ein Dataset, das mit dem DD-Namen CMPRT01
(logischer Drucker 1) referenziert wird.