ADMIN_EXPLAIN_MAINT gespeicherte Prozedur

Mit der gespeicherten Prozedur ADMIN_EXPLAIN_MAINT können Sie EXPLAIN-Tabellen erstellen, die Tabellen auf das Format der aktuellen Db2 -Version aktualisieren und andere Verwaltungsaufgaben erledigen.

Beginnen Sie mit den allgemeinen Informationen zur Programmierschnittstelle.

Weitere Informationen zu Verwaltungsaufgaben, die Sie für EXPLAIN-Tabellen mithilfe der gespeicherten Prozedur ADMIN_EXPLAIN_MAINT ausführen können, finden Sie in der Beschreibung des Aktions-Eingabeparameters.

Wichtig : Die gespeicherte Prozedur ADMIN_EXPLAIN_MAINT konvertiert keine EXPLAIN-Tabellen, die in EBCDIC kodiert sind, in Unicode. Allerdings wird das Format solcher Tabellen auf das Format der aktuellen Db2 -Version aktualisiert. Ab DB2® 10 wird SQLCODE -878 für EXPLAIN-Tabellen ausgegeben, die in anderen CCSIDs als Unicode codiert sind.

Umgebung

Die gespeicherte Prozedur ADMIN_EXPLAIN_MAINT muss in einem von WLM eingerichteten Adressraum für gespeicherte Prozeduren ausgeführt werden.

Berechtigung

Um die CALL-Anweisung auszuführen, muss der Eigentümer des Pakets oder Plans, das bzw. der die CALL-Anweisung enthält, über eine oder mehrere der folgenden Berechtigungen für jedes Paket verfügen, das von der gespeicherten Prozedur verwendet wird:
  • EXECUTE-Berechtigung für das gespeicherte Prozedurpaket
  • Eigentum an dem Paket
  • PACKADM-Behörde für die Paketsammlung
  • Berechtigung SYSADM
Die gespeicherte Prozedur führt die Anweisung SET CURRENT SQLID aus, um den Wert von CURRENT SQLID in den Wert zu ändern, der durch den Eingabeparameter authid angegeben wird. Der Wert von CURRENT SQLID ist die Autorisierungs-ID für dynamische SQL-Anweisungen.

Syntax

Das folgende Syntaxdiagramm zeigt die SQL-CALL-Anweisung zum Aufrufen dieser gespeicherten Prozedur:

Syntaxdiagramm lesenÜberspringe das visuelle Syntaxdiagramm CALL ADMIN_EXPLAIN_MAINT ( ModusNULL , HandlungNULL , Alias verwaltenNULL , gedeckter TischNULL , authid , schema-Name , schema-AliasNULL , datenbanknameNULL , stogroup-DatenbankNULL , stogroup-indexNULL , 4k-bufferpoolNULL , 8k-bufferpoolNULL , 16k-bufferpoolNULL , 32k-bufferpoolNULL , Index-PufferpoolNULL , bp-4kb-lobNULL , bp-8kb-lobNULL , bp-16kb-lobNULL , bp-32kb-lobNULL , Rückgabecode , Nachricht )

Beschreibung der Optionen

-Modus
Gibt den Verarbeitungsmodus an. Dieser Eingabeparameter akzeptiert die folgenden Werte:
Kopieren der Daten als Teil des Zurückspulens und Entladens (RUN)
Ändern und erstellen Sie EXPLAIN-Tabellen für das angegebene SCHEMA.
VORSCHAU
Es werden keine Änderungen verarbeitet.
Der Datentyp dieses Eingabeparameters ist VARCHAR(8). Wenn diese Option nicht angegeben wird, ist der Standardwert "RUN".
aktion
Gibt die Aktion an, die für die EXPLAIN-Tabellen im angegebenen Schema ausgeführt wird. Dieser Eingabeparameter akzeptiert die folgenden Werte:
STANDARDISIERUNG
Aktualisieren Sie alle vorhandenen EXPLAIN-Tabellen auf das Format der aktuellen Db2 -Version.
STANDARDISIEREN_UND_ERSTELLEN
Aktualisieren Sie alle vorhandenen EXPLAIN-Tabellen auf das Format der aktuellen Db2 -Version und erstellen Sie alle fehlenden Tabellen der Tabellen, die durch den Eingabeparameter "table-set" angegeben werden.
CREATE
Erstellen Sie einen neuen Satz von EXPLAIN-Tabellen im angegebenen Schema. Es werden nur Tabellen erstellt, die durch den Eingabeparameter "table-set" angegeben werden.
CREATE_ALIAS
Erstellen Sie nur einen neuen Satz von Aliasnamen. Die neuen Aliasnamen werden durch den Wert qualifiziert, der für den Eingabeparameter "Schema-Alias" angegeben wird.
DROP
Löschen Sie alle vorhandenen EXPLAIN-Tabellen und den zugehörigen Tabellenbereich.
DROP_AND_CREATE
Löschen Sie alle vorhandenen EXPLAIN-Tabellen und die zugehörigen Tabellenbereiche und erstellen Sie einen Ersatzsatz der Tabellen, die durch den Eingabeparameter „table-set“ angegeben sind.
Der Datentyp dieses Eingabeparameters ist VARCHAR(30). Wenn diese Option nicht angegeben wird, ist der Standardwert STANDARDIZE.
Alias verwalten
Gibt an, ob Aliase für EXPLAIN-Tabellen erstellt werden sollen. Dieser Eingabeparameter akzeptiert die folgenden Werte:
JA
Die gespeicherte Prozedur erstellt Aliase, sodass alle EXPLAIN-Tabellen im angegebenen Schema Aliase haben, die den vorhandenen PLAN_TABLE-Aliasen entsprechen.
NEIN
Es werden keine Aliasse erstellt.
Der Datentyp dieses Eingabeparameters ist VARCHAR(3). Wenn diese Option nicht angegeben wird, ist der Standardwert NEIN.
gedeckter Tisch
Gibt die Liste der zu erstellenden EXPLAIN-Tabellen an.

Wenn der Aktionswert CREATE ist, dürfen die angegebenen Tabellen noch nicht vorhanden sein. Dieser Eingabeparameter akzeptiert die folgenden Werte:

'table-name-1, table-name-2, ..., tabelle-name-n '
Gibt eine explizite Liste der zu erstellenden Tabellen an.
ALLE
Alle EXPLAIN-Tabellen, die von den Beispieljobs DSNTESC und DSNTESH erstellt werden.
ACCEL
Nur die folgenden Tabellen:
  • PLAN_TABLE
  • DSN_STATEMNT_TABLE
  • DSN_STATEMENT_CACHE_TABLE
  • DSN_ABFRAGEINFO_TABELLE
DIAGNOSTICS
Nur die folgenden Tabellen:
  • PLAN_TABLE
  • DSN_STATEMNT_TABLE
  • DSN_DETCOST_TABLE
  • DSN_PRÄDIKAT_TABELLE
  • DSN_FILTER_TABLE
  • DSN_KALTISTABELLE
  • DSN_KEYTGTDIST_TABELLE
  • DSN_ABFRAGEINFO_TABELLE
ALL_EXCEPT( table-name-1, table-name-2,..., tabelle-name-n )
Alle Tabellen, die von den Beispielaufträgen DSNTESC und DSNTESH erstellt werden, mit Ausnahme der in der Liste angegebenen Tabellen.

Dieser Wert gilt nur, wenn Aktion einer der folgenden Werte ist:

  • STANDARDISIEREN_UND_ERSTELLEN
  • CREATE
  • DROP_AND_CREATE

Der Datentyp dieses Eingabeparameters ist VARCHAR(1000). Wenn diese Option nicht angegeben wird, werden standardmäßig die folgenden EXPLAIN-Tabellen erstellt:

  • PLAN_TABLE
  • DSN_STATEMNT_TABLE
  • DSN_STATEMENT_CACHE_TABLE
authid
Die Einstellung "CURRENT SQLID". Wenn diese Option nicht angegeben wird, wird der Wert des Spezialregisters CURRENT SQLID verwendet. Der Datentyp dieses erforderlichen Eingabeparameters ist VARCHAR(128).
schema-Name
Gibt den Schemanamen an, der die EXPLAIN-Tabellen qualifiziert. Wenn diese Option nicht angegeben wird, wird der Wert des Spezialregisters "CURRENT SCHEMA" verwendet. Der Datentyp dieses erforderlichen Eingabeparameters ist VARCHAR(128).
schema-Alias
Gibt den Schemanamen an, der Aliasse qualifiziert, die erstellt werden, wenn der Aktionswert CREATE_ALIAS lautet. Der Datentyp dieses Eingabeparameters ist VARCHAR(128). Dieser Eingabeparameter ist erforderlich, wenn der Aktionswert CREATE_ALIAS lautet.
datenbankname
Gibt die Datenbank an, die die neuen EXPLAIN-Tabellen enthält. Die gespeicherte Prozedur erstellt die Datenbank, falls sie nicht vorhanden ist. Der Datentyp dieses Eingabeparameters ist VARCHAR(8). Wenn diese Option nicht angegeben wird, werden die Namen der Datenbank und des Tabellenbereichs in den CREATE TABLE-Anweisungen für die EXPLAIN-Tabellen ausgelassen.
stogroup-Datenbank
Gibt die Speichergruppe für die Datenbank an, die die neuen EXPLAIN-Tabellen enthält. Der Datentyp dieses Eingabeparameters ist VARCHAR(128). Wenn diese Option nicht angegeben wird, wird das Schlüsselwort STOGROUP in der CREATE DATABASE-Anweisung ausgelassen, sofern die Datenbank noch nicht vorhanden ist.
stogroup-index
Gibt die Speichergruppe für die Indizes der neuen EXPLAIN-Tabellen an. Der Datentyp dieses Eingabeparameters ist VARCHAR(128). Wenn diese Option nicht angegeben wird, wird das Schlüsselwort USING STOGROUP in der CREATE INDEX-Anweisung ausgelassen.
4k-bufferpool
Gibt den Namen des 4-KB-Seitenpufferpools an, der neuen Tabellenbereichen zugewiesen wird. Der Datentyp dieses Eingabeparameters ist VARCHAR(8). Wenn diese Option nicht angegeben wird, wird der Name des Tabellenbereichs in den CREATE TABLE-Anweisungen für die EXPLAIN-Tabellen ausgelassen.
8k-bufferpool
Gibt den Namen des 8-KB-Seitenpufferpools an, der neuen Tabellenbereichen zugewiesen wird. Der Datentyp dieses Eingabeparameters ist VARCHAR(8). Wenn diese Option nicht angegeben wird, wird der Name des Tabellenbereichs in den CREATE TABLE-Anweisungen für die EXPLAIN-Tabellen ausgelassen.
16k-bufferpool
Gibt den Namen des 16-KB-Seitenpufferpools an, der neuen Tabellenbereichen zugewiesen wird. Der Datentyp dieses Eingabeparameters ist VARCHAR(8). Wenn diese Option nicht angegeben wird, wird der Name des Tabellenbereichs in den CREATE TABLE-Anweisungen für die EXPLAIN-Tabellen ausgelassen.
32k-bufferpool
Gibt den Namen des 32-KB-Seitenpufferpools an, der neuen Tabellenbereichen zugewiesen wird. Der Datentyp dieses Eingabeparameters ist VARCHAR(8). Wenn diese Option nicht angegeben wird, wird der Name des Tabellenbereichs in den CREATE TABLE-Anweisungen für die EXPLAIN-Tabellen ausgelassen.
Index-Pufferpool
Gibt den Namen des Pufferpools für die Indizes der neuen EXPLAIN-Tabellen an. Der Datentyp dieses Eingabeparameters ist VARCHAR(8). Wenn diese Option nicht angegeben wird, wird das Schlüsselwort BUFFERPOOL in der CREATE INDEX-Anweisung ausgelassen.
bp-4kb-lob
Gibt den Namen des 4-KB-Seitenpufferpools an, der neuen LOB-Tabellenbereichen für die neuen Hilfstabellen der neuen EXPLAIN-Tabellen zugewiesen wird. Der Datentyp dieses Eingabeparameters ist VARCHAR(8). Wenn diese Option nicht angegeben wird, wird das Schlüsselwort "BUFFERPOOL" in der CREATE LOB TABLESPACE-Anweisung ausgelassen.
bp-8kb-lob
Gibt den Namen des 8-KB-Seitenpufferpools an, der neuen LOB-Tabellenbereichen für die neuen Hilfstabellen der neuen EXPLAIN-Tabellen zugewiesen wird. Der Datentyp dieses Eingabeparameters ist VARCHAR(8). Wenn diese Option nicht angegeben wird, wird das Schlüsselwort "BUFFERPOOL" in der CREATE LOB TABLESPACE-Anweisung ausgelassen.
bp-16kb-lob
Gibt den Namen des 16-KB-Seitenpufferpools an, der neuen LOB-Tabellenbereichen für die neuen Hilfstabellen der neuen EXPLAIN-Tabellen zugewiesen wird. Der Datentyp dieses Eingabeparameters ist VARCHAR(8). Wenn diese Option nicht angegeben wird, wird das Schlüsselwort "BUFFERPOOL" in der CREATE LOB TABLESPACE-Anweisung ausgelassen.
bp-32kb-lob
Gibt den Namen des 32-KB-Seitenpufferpools an, der neuen LOB-Tabellenbereichen für die neuen Hilfstabellen der neuen EXPLAIN-Tabellen zugewiesen wird. Der Datentyp dieses Eingabeparameters ist VARCHAR(8). Wenn diese Option nicht angegeben wird, wird das Schlüsselwort "BUFFERPOOL" in der CREATE LOB TABLESPACE-Anweisung ausgelassen.
Rückgabecode
Ein Ausgabeparameter, der den Rückgabecode der gespeicherten Prozedur enthält. Das Feld enthält einen der folgenden Werte:
0
Der Anruf wurde erfolgreich abgeschlossen.
4
Eine oder mehrere vorhandene EXPLAIN-Tabellen sind nicht in Unicode. Die Tabellenformate werden auf das Format der aktuellen Db2 -Version aktualisiert. Die Tabellen werden jedoch nicht in Unicode konvertiert.
8
Das Format einer oder mehrerer vorhandener EXPLAIN-Tabellen, die im Eingabeparameter des Tabellen-Sets enthalten waren, kann nicht auf das Format der aktuellen Db2 -Version aktualisiert werden, da das vorhandene Format keinem bekannten Format entspricht oder die Tabellen nicht durch eine ALTER TABLE-Anweisung geändert werden können.
12.
Der Anruf wurde nicht erfolgreich abgeschlossen. Der Parameter "Message Output" enthält Meldungen, die den Fehler beschreiben.
Nachricht
Ein Ausgabeparameter, der Meldungen enthält, die Fehler beschreiben, die bei der gespeicherten Prozedur aufgetreten sind.

Das folgende Beispiel in der Programmiersprache C zeigt, wie die gespeicherte Prozedur ADMIN_EXPLAIN_MAINT aufgerufen wird:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 /******************* DB2 SQL Communication Area *******************/
EXEC SQL INCLUDE SQLCA;
int main( int argc, char *argv[] )    /* Argument count and list   */
{
 /****************** DB2 Host Variables ****************************/
 EXEC SQL BEGIN DECLARE SECTION;
 /* SYSPROC.ADMIN_EXPLAIN_MAINT parameters                         */
 char       pmode[9];            /* Processing mode                */
 char       paction[31];         /* Action                         */
 char       pmanagealias[4];     /* Manage alias                   */
 char       ptableset[1001];     /* EXPLAIN tables to be created   */
 char       pauthid[129];        /* CURRENT SQLID setting          */
 char       pschema[129];        /* EXPLAIN tables qualifier       */
 char       pschemaalias[129];   /* EXPLAIN tables aliases qual    */
 char       pdatabase[9];        /* Database of EXPLAIN tables     */
 char       pstogroupdb[129];    /* Storage group of database      */
 char       pstogroupix[129];    /* Storage group of EXPLAIN       */
                                 /* tables indexes                 */
 char       p4Kbp[9];            /* 4 KB page buffer pool for      */
                                 /* table space of EXPLAIN table   */
 char       p8Kbp[9];            /* 8 KB page buffer pool for      */
                                 /* table space of EXPLAIN table   */
 char       p16Kbp[9];           /* 16 KB page buffer pool for     */
                                 /* table space of EXPLAIN table   */
 char       p32Kbp[9];           /* 32 KB page buffer pool for     */
                                 /* table space of EXPLAIN table   */
 char       pixbp[9];            /* Buffer pool for indexes of     */
                                 /* EXPLAIN tables                 */
 char       p4Klobbp[9];         /* 4 KB page buffer pool for      */
                                 /* LOB table space                */
 char       p8Klobbp[9];         /* 8 KB page buffer pool for      */
                                 /* LOB table space                */
 char       p16Klobbp[9];        /* 16 KB page buffer pool for     */
                                 /* LOB table space                */
 char       p32Klobbp[9];        /* 32 KB page buffer pool for     */
                                 /* LOB table space                */
 long int   prc;                 /* Return code                    */
 char       pmsg[1332];          /* Error message                  */

 short int  ind_pmode;           /* Indicator variable             */
 short int  ind_paction;         /* Indicator variable             */
 short int  ind_pmanagealias;    /* Indicator variable             */
 short int  ind_ptableset;       /* Indicator variable             */
 short int  ind_pauthid;         /* Indicator variable             */
 short int  ind_pschema;         /* Indicator variable             */
 short int  ind_pschemaalias;    /* Indicator variable             */
 short int  ind_pdatabase;       /* Indicator variable             */
 short int  ind_pstogroupdb;     /* Indicator variable             */
 short int  ind_pstogroupix;     /* Indicator variable             */
 short int  ind_p4Kbp;           /* Indicator variable             */
 short int  ind_p8Kbp;           /* Indicator variable             */
 short int  ind_p16Kbp;          /* Indicator variable             */
 short int  ind_p32Kbp;          /* Indicator variable             */
 short int  ind_pixbp;           /* Indicator variable             */
 short int  ind_p4Klobbp;        /* Indicator variable             */
 short int  ind_p8Klobbp;        /* Indicator variable             */
 short int  ind_p16Klobbp;       /* Indicator variable             */
 short int  ind_p32Klobbp;       /* Indicator variable             */
 short int  ind_prc;             /* Indicator variable             */
 short int  ind_pmsg;            /* Indicator variable             */
 /* Result set locators                                            */
 volatile SQL TYPE IS RESULT_SET_LOCATOR *rs_loc1;
 volatile SQL TYPE IS RESULT_SET_LOCATOR *rs_loc2;
 volatile SQL TYPE IS RESULT_SET_LOCATOR *rs_loc3;
 /* SYSIBM.EXPLAIN_MAINT_SUMMARY result set row                    */
 long int    db_created;             /* Num databases created      */
 long int    ts_created;             /* Num table spaces created   */
 long int    tb_created;             /* Num EXPLAIN tables created */
 long int    aux_created;            /* Num aux tables created     */
 long int    ix_created;             /* Num indexes created        */
 long int    alias_created;          /* Num aliases created        */
 long int    tb_examined;            /* Num EXPLAIN tables examined*/
                                     /* for old format             */
 long int    tb_altered;             /* Num databases created      */
 long int    ts_dropped;             /* Num table spaces dropped   */
 long int    tb_dropped;             /* Num EXPLAIN tables dropped */
 long int    tb_unexpected_format;   /* Num EXPLAIN tables with    */
                                     /* invalid format             */
 long int    tb_not_standardized;    /* Num EXPLAIN tables not     */
                                     /* upgraded to the current    */
                                     /* DB2 release format         */
 long int    tb_not_unicode;         /* Num EXPLAIN tables not     */
                                     /* in UNICODE                 */
 /* SYSIBM.EXPLAIN_MAINT_SQL result set row                        */
 long int    rownum2;                /* Sequence number of the     */
                                     /* table row                  */
 char        sql[16000];             /* SQL statement              */
 /* SYSIBM.EXPLAIN_MAINT_TB_NOT_UPGRADED result set row            */
 long int    rownum3;                /* Sequence number of the     */
                                     /* table row                  */
 char        schemaname[129];        /* EXPLAIN table qualifier    */
 char        tbname[129];            /* EXPLAIN table name         */
 char        reason[1001];           /* Reason                     */
 EXEC SQL END DECLARE SECTION;

 int resultset3 = 0;                 /* Result set 3 not returned  */
 /******************************************************************/
 /* Clear result tables                                            */
 /******************************************************************/
 EXEC SQL DELETE FROM SYSIBM.EXPLAIN_MAINT_SUMMARY;
 EXEC SQL DELETE FROM SYSIBM.EXPLAIN_MAINT_SQL;
 EXEC SQL DELETE FROM SYSIBM.EXPLAIN_MAINT_TB_NOT_UPGRADED;
 /******************************************************************/
 /* Set procedure input parameters                                 */
 /******************************************************************/
 strcpy(paction, "STANDARDIZE_AND_CREATE");
 strcpy(ptableset,
        "DSN_PREDICATE_SELECTIVITY, DSN_STAT_FEEDBACK");
 strcpy(pauthid, "USER001");
 strcpy(pschema, "USER002");
 ind_pmode = -1;
 ind_paction = 0;
 ind_pmanagealias = -1;
 ind_ptableset = 0;
 ind_pauthid = 0;
 ind_pschema = 0;
 ind_pschemaalias = -1;
 ind_pdatabase = -1;
 ind_pstogroupdb = -1;
 ind_pstogroupix = -1;
 ind_p4Kbp = -1;
 ind_p8Kbp = -1;
 ind_p16Kbp = -1;
 ind_p32Kbp = -1;
 ind_pixbp = -1;
 ind_p4Klobbp = -1;
 ind_p8Klobbp = -1;
 ind_p16Klobbp = -1;
 ind_p32Klobbp = -1;
 ind_prc = -1;
 ind_pmsg = -1;
 /******************************************************************/
 /* Call stored procedure SYSPROC.ADMIN_EXPLAIN_MAINT              */
 /******************************************************************/
 EXEC SQL CALL SYSPROC.ADMIN_EXPLAIN_MAINT (
                      :pmode:ind_pmode,
                      :paction:ind_paction,
                      :pmanagealias:ind_pmanagealias,
                      :ptableset:ind_ptableset,
                      :pauthid:ind_pauthid,
                      :pschema:ind_pschema,
                      :pschemaalias:ind_pschemaalias,
                      :pdatabase:ind_pdatabase,
                      :pstogroupdb:ind_pstogroupdb,
                      :pstogroupix:ind_pstogroupix,
                      :p4Kbp:ind_p4Kbp,
                      :p8Kbp:ind_p8Kbp,
                      :p16Kbp:ind_p16Kbp,
                      :p32Kbp:ind_p32Kbp,
                      :pixbp:ind_pixbp,
                      :p4Klobbp:ind_p4Klobbp,
                      :p8Klobbp:ind_p8Klobbp,
                      :p16Klobbp:ind_p16Klobbp,
                      :p32Klobbp:ind_p32Klobbp,
                      :prc:ind_prc,
                      :pmsg:ind_pmsg);
 /******************************************************************/
 /* Retrieve result sets when the SQLCODE from the call is +446,   */
 /* which indicates that result sets were returned                 */
 /******************************************************************/
 if (SQLCODE == +466)               /* Result sets were returned   */
 {
   /* Establish a link between a result set and its locator        */
   EXEC SQL ASSOCIATE LOCATORS (:rs_loc1, :rs_loc2, :rs_loc3)
 		WITH PROCEDURE SYSPROC.ADMIN_EXPLAIN_MAINT;
   /* Associate a cursor with each result set                      */
   EXEC SQL ALLOCATE C1 CURSOR FOR RESULT SET :rs_loc1;
   EXEC SQL ALLOCATE C2 CURSOR FOR RESULT SET :rs_loc2;
   EXEC SQL ALLOCATE C3 CURSOR FOR RESULT SET :rs_loc3;
   if (SQLCODE == 0)                /* Result set 3 is returned    */
     resultset3 = 1;
   /* Perform fetch using C1 to retrieve the first result set      */
   EXEC SQL FETCH C1 INTO :db_created, :ts_created,
                          :tb_created, :aux_created,
                          :ix_created, :alias_created,
                          :tb_examined, :tb_altered,
                          :ts_dropped, :tb_dropped,
						  :tb_unexpected_format,
						  :tb_not_standardized,
                          :tb_not_unicode;
   /* Perform fetches using C2 to retrieve all rows from the       */
   /* second result set                                            */
   EXEC SQL FETCH C2 INTO :rownum2, :sql;
   while (SQLCODE == 0)
   {
     EXEC SQL FETCH C2 INTO :rownum2, :sql;
   }
   /* Perform fetches using C3 to retrieve all rows from the       */
   /* third result set                                             */
   if (resultset3 == 1)
   {
     EXEC SQL FETCH C3 INTO :rownum3, :schemaname, :tbname,
                            :reason;
     while (SQLCODE == 0)
     {
       EXEC SQL FETCH C3 INTO :rownum3, :schemaname, :tbname,
                              :reason;
     }
   }
 }
 return;
}

Ausgabe

Die gespeicherte Prozedur ADMIN_EXPLAIN_MAINT erstellt bis zu drei Ergebnismengen, die in den folgenden globalen temporären Tabellen zurückgegeben werden:

SYSIBM.EXPLAIN_MAINT_SUMMARY
Die Zusammenfassung der Aktionen, die von der gespeicherten Prozedur ausgeführt werden, wenn der Wert des Eingabeparameters "Modus" "RUN" ist. Wenn der Wert des Eingabeparameters "Modus" "VORSCHAU" lautet, werden in dieser Ergebnismenge die Aktionen zusammengefasst, aber die Aktionen werden nicht abgeschlossen. Die Werte der verschiedenen Spalten type_CREATED, type_ALTERED und type_DROPPED fassen die Anzahl der entsprechenden Anweisungen für jede Aktion in der SQL-Spalte der Ergebnismenge von SYSIBM.EXPLAIN_MAINT_SQL zusammen.
Tabelle 1. Format der SYSIBM.EXPLAIN_MAINT_SUMMARY -Ergebnismenge
Spaltenname Datentyp Beschreibung
DB_CREATED INTEGER NOT NULL Die Anzahl der erstellten Datenbanken.
TS_ERSTELLT INTEGER NOT NULL Die Anzahl der erstellten Tabellenzeilen.
TB_ERSTELLT INTEGER NOT NULL Die Anzahl der erstellten EXPLAIN-Tabellen.
AUX_ERSTELLT INTEGER NOT NULL Die Anzahl der Hilfstabellen, die erstellt werden.
IX_ERSTELLT INTEGER NOT NULL Die Anzahl der erstellten Indizes.
ALIAS_ERSTELLT INTEGER NOT NULL Die Anzahl der erstellten Aliasnamen.
TB_GEPRÜFT INTEGER NOT NULL Die Anzahl der EXPLAIN-Tabellen, die auf Formate untersucht wurden, die älter sind als das Format der aktuellen Db2 -Version.
TB_VERÄNDERT INTEGER NOT NULL Die Anzahl der Tabellen, die geändert wurden, um das Format für die aktuelle Db2 -Version zu verwenden.
TS_ABGEWIESEN INTEGER NOT NULL Die Anzahl der Tabellenbereiche, die gelöscht wurden.
TB_ABGEWIESEN INTEGER NOT NULL Die Anzahl der EXPLAIN-Tabellen, die gelöscht werden.
TB_UNERWARTETES_FORMAT INTEGER NOT NULL Die Anzahl der EXPLAIN-Tabellen, die keinem bekannten gültigen Format entsprechen.
TB_NICHT_STANDARDISIERT INTEGER NOT NULL Die Anzahl der EXPLAIN-Tabellen, die nicht in das Format der aktuellen Db2 -Version konvertiert werden können.
TB_NICHT_UNICODE INTEGER NOT NULL Die Anzahl der vorhandenen EXPLAIN-Tabellen, die in einer anderen CCSID als Unicode codiert sind. Solche Tabellen werden auf das Format der aktuellen Db2 -Version aktualisiert, aber die CCSID wird nicht in Unicode geändert.
SYSIBM.EXPLAIN_MAINT_SQL
Eine Liste der SQL-Anweisungen, die die gespeicherte Prozedur ausgibt, wenn der Wert des Eingabeparameters "Modus" "RUN" ist. Wenn der Wert des Eingabep arameters "Modus" "PREVIEW" lautet, werden in dieser Ergebnismenge die Aktionen zusammengefasst, die Anweisungen werden jedoch nicht ausgegeben.
Tabelle 2. Format der SYSIBM.EXPLAIN_MAINT_SQL -Ergebnismenge
Spaltenname Datentyp Beschreibung
ROWNUM INTEGER NOT NULL Die laufende Nummer der Tabellenzeile, 1–n.
SQL VARCHAR(16000) NICHT NULL Der Text einer SQL-Anweisung, die von der gespeicherten Prozedur ausgegeben wird, um EXPLAIN-Tabellen und zugehörige Objekte zu erstellen, zu ändern oder zu löschen.
Tabellenbereichsnamen: Tabellenbereiche, die die gespeicherte Prozedur ADMIN_EXPLAIN_MAINT für EXPLAIN-Tabellen und zugehörige Hilfstabellen erstellt, haben Namen, die auf einer vierstelligen Abkürzung des Namens der zugehörigen Tabelle basieren, gefolgt von einer vierstelligen Zahl, die die Eindeutigkeit des Namens gewährleistet. Die Abkürzungen aus vier Buchstaben folgen keinem einheitlichen Muster in Bezug auf die verschiedenen Tabellennamen. Zum Beispiel wird PLANnnnn für PLAN_TABLE, STMTnnnn für DSN_STATEMNT_TABLE und SFEDnnnn für DSN_STAT_FEEDBACK verwendet.

Die Namen der Tabellenbereiche, die durch die gespeicherte Prozedur erstellt werden, finden Sie in der Ergebnismenge von SYSIBM.EXPLAIN_MAINT_SQL.

SYSIBM.EXPLAIN_MAINT_TB_NOT_UPGRADED
Diese Ergebnismenge wird nur zurückgegeben, wenn der Wert des Aktions-Eingabeparameters STANDARDIZE oder STANDARDIZE_AND_CREATE ist und mindestens eine der folgenden Bedingungen erfüllt ist. Die Ergebnismenge enthält eine Zeile für jedes der folgenden Vorkommen:
  • Die Tabelle wird mit einer anderen CSSID als Unicode erstellt. Solche Tabellen können auf das Format der aktuellen Db2 -Version aktualisiert werden. Die CCSID wird jedoch nicht in Unicode geändert.
  • Das Format der Tabelle "EXPLAIN" entspricht keinem bekannten Format. Solche Tabellen werden nicht aktualisiert.
  • ALTER TABLE-Anweisungen können keine Änderungen abschließen, die erforderlich sind, um eine Tabelle auf das Format der aktuellen Db2 -Version zu aktualisieren. Solche Tabellen werden nicht aktualisiert.
Tabelle 3. Format der SYSIBM.EXPLAIN_TMAIN_TB_NOT_UPGRADED -Ergebnismenge
Spaltenname Datentyp Beschreibung
ROWNUM INTEGER NOT NULL Die laufende Nummer der Tabellenzeile, 1–n.
SCHEMA VARCHAR(128) NOT NULL Das Schema einer EXPLAIN-Tabelle, die nicht in das Format der aktuellen Version von Db2 konvertiert werden kann.
TBNAME VARCHAR(128) NOT NULL Der Name einer EXPLAIN-Tabelle, die nicht in das Format der aktuellen Version von Db2 konvertiert werden kann.
REASON VARCHAR(1000) NOT NULL Eine Beschreibung des Grundes, warum die Tabelle nicht in das Format der aktuellen Version von Db2 konvertiert werden kann.
Informationen zur allgemeinen Programmierschnittstelle beenden.