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).
|
Dieser Explain-Modus wird als Package-Modus bezeichnet.
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 Library 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.