Statistikdaten mit der gespeicherten Prozedur OPT_STAT_ADVICE erfassen

Rufen Sie diese gespeicherte Prozedur auf, um Empfehlungen für die Erfassung von Statistikdaten in Tabellen in einem DB2 11 for z/OS-Subsystem, Modus für neue Funktion (NFM), abzurufen. Die gespeicherte Prozedur kann entweder die Katalogtabelle SYSIBM.DSN_STAT_FEEDBACK mit Empfehlungen auffüllen oder RUNSTATS-Profile aktualisieren.

Vorbereitende Schritte

Informationen zu diesem Vorgang

Wenn Sie Statistikdaten mit der gespeicherten Prozedur OPT_STAT_ADVICE erfassen wollen, stellen Sie sicher, dass die Voraussetzungen erfüllt sind, richten Sie die WLM Java-Umgebung ein, laden Sie die JAR-Datei hoch, die die gespeicherte Prozedur enthält, laden Sie ein DBRM hoch und passen Sie dann einen JCL-Beispieljob an und führen Sie ihn aus.

Vorgehensweise

  1. Richten Sie die WLM Java-Umgebung ein und geben Sie dabei einen Wert für CLASSPATH an, der auf die Speicherposition verweist, in die Sie die gespeicherte Prozedur hochladen wollen. Die gespeicherte Prozedur kann unter Java 1.5 oder höher ausgeführt werden.

    Es folgt ein Beispiel, wie die WLM Java-Umgebung eingerichtet werden kann:

    ENVAR("CLASSPATH=/u/admf001/aocstatssp.jar",
    "TZ=PST08",
    "JAVA_HOME=/usr/lpp/java160/J6.0",
    "WORK_DIR=/u/oeusr05/JavaSP",
    "JCC_HOME=/usr/lpp/db2/devbase/jdbc",
    "DB2_BASE=/usr/lpp/db2/devbase/base"),
    MSGFILE(JSPDEBUG),
    XPLINK(ON)
  2. Laden Sie die JAR-Datei des Lademoduls aocstatssp.jar hoch.
    1. Öffnen Sie auf Ihrer Workstation ein Befehlsfenster.
    2. Wechseln Sie zum Ordner \QueryTunerServerConfig\all_features\ZOS\SCA im Installationsverzeichnis für den IBM Data Studio-Client.
    3. Navigieren Sie über FTP zum Subsystem.
    4. Wechseln Sie in das Verzeichnis, auf das die WLM-Variable CLASSPATH verweist.
    5. Wechseln Sie in den Binärmodus.
    6. Speichern Sie die JAR-Datei im Verzeichnis.
  3. Laden Sie das DBRM AOC5OSCM in das Subsystem hoch. Dieses DBRM befindet sich im Installationsverzeichnis für den IBM Data Studio-Client unter \QueryTunerServerConfig\all_features\ZOS\V11.
  4. Passen Sie den Beispiel-JCL-Job AOCDDL11 an und führen Sie ihn aus. Dieser Beispieljob befindet sich im Installationsverzeichnis für den IBM Data Studio-Client unter \QueryTunerServerConfig\all_features\ZOS\V11.
    1. Passen Sie den Schritt AOCBIND an. In diesem Schritt werden Pakete gebunden, die von InfoSphere Optim Query Workload Tuner verwendet werden.
    2. Passen Sie den Schritt AOCSP an. In diesem Schritt wird die gespeicherte Prozedur SYSPROC.OPT_STAT_ADVICE erstellt. Sie können die Zeilen zum Erstellen der gespeicherten Prozeduren SYSPROC.OPT_RUNSQL und SYSPROC.OPT_EXECUTE_TASK auf Kommentar setzen.
  5. Erstellen Sie eine Tabelle, in der die Tabellen aufgelistet sind, die für die Sie Empfehlungen wünschen, und füllen Sie sie auf. Diese Tabelle kann als globale temporäre Tabelle (DGTT - Global Temporary Table) oder als reguläre Tabelle deklariert werden. Sie muss zwei Spalten enthalten:
    Tabelle 1. Spalten der Tabelle zum Auflisten der Tabellen, für die Sie Empfehlungen wünschen

    Spalte

    Datentyp

    Beschreibung

    CREATOR VARCHAR(128) Das Schema einer Tabelle, für die Sie Empfehlungen wollen.
    NAME VARCHAR(128) Der Name der entsprechenden Tabelle.
  6. Stellen Sie sicher, dass die Anweisung CALL Werte für diese Parameter bereitstellt und akzeptiert.
    Tabelle 2. Parameter der gespeicherten Prozedur OPT_STAT_ADVICE

    Modus

    Parameter

    Datentyp

    Dateneingabe optional? (J/N)

    Beschreibung

    IN TABLECREATOR VARCHAR(128) J Schema der Tabelle, die die Tabellen auflistet, für die Sie Empfehlungen zur Statistikdatenerfassung wollen.

    Wenn der Wert NULL ist, ruft die gespeicherte Prozedur Empfehlungen für alle Tabellen, dazugehörige Indizes und Spalten über das gesamte verbundene Subsystem hinweg ab.

    IN TABLENAME VARCHAR(128) J Tabelle, die die Tabellen auflistet, für die Sie Empfehlungen zur Statistikdatenerfassung wollen.

    Wenn TABLECREATOR NULL ist, muss dieser Parameter ebenfalls NULL sein.

    Wenn TABLECREATOR nicht NULL ist, aber TABLENAME NULL ist, gibt die gespeicherte Prozedur eine Fehlernachricht im Parameter OUTPUT_MESSAGE zurück.

    IN OUTPUT_METHOD INTEGER N Ausgabemethode für Empfehlungen zur Statistikdatenerfassung.

    Mögliche Werte:

    1: Die Katalogtabelle SYSIBM.DSN_STAT_FEEDBACK mit speicherinternen Statistikdaten auffüllen.

    2: RUNSTATS-Profile direkt aktualisieren.

    Die gespeicherte Prozedur DSNACCOX entdeckt Änderungen an RUNSTATS-Profilen und startet dann die Erfassung von Statistiken gemäß einem Terminplan, den Sie festlegen können.

    Wenn Sie die gespeicherte Prozedur OPT_STAT_ADVICE zusammen mit DSNACCOX verwenden wollen, geben Sie beim Aufrufen von OPT_STAT_ADVICE "2" als Wert für den Eingabeparameter OUTPUT_METHOD an. Nachdem diese gespeicherte Prozedur RUNSTATS-Profile aktualisiert, entdeckt DSNACCOX die Aktualisierungen und beginnt mit der Statistikdatenerfassung gemäß ihrem Terminplan.

    IN RESERVED INTEGER J Reserviert
    OUT RETURN_CODE INTEGER   Rückgabewert der gespeicherten Prozedur

    Mögliche Werte:

    0: erfolgreich abgeschlossen.

    4: Mit Warnungen abgeschlossen. Die Warnnachrichten sind im Parameter OUTPUT_MESSAGE.

    8: Mit Fehlern fehlgeschlagen. Die Fehlernachrichten sind im Parameter OUTPUT_MESSAGE.

    OUT RESERVED BLOB(64k)  

    Reserviert

    OUT OUTPUT_MESSAGE VARCHAR(4096)   Die von der gespeicherten Prozedur zurückgegebenen Nachrichten.

    Der Wert ist NULL, wenn der Rückgabecode 0 ist. Andernfalls listet der Parameter Fehler- oder Warnnachrichten auf, die von der gespeicherten Prozedur generiert wurden.

Beispiel

Dieses Beispiel eines Aufrufs der gespeicherten Prozedur verwendet eine DGTT.

  1. Erstellen Sie eine DGTT zur Speicherung einer Liste von Tabellen, für die Empfehlungen für die Erfassung von Statistikdaten generiert werden sollen.
    DECLARE GLOBAL TEMPORARY TABLE SESSION.STAT_COLL_TABLE (
            CREATOR VARCHAR(128),
            NAME VARCHAR(128)
    ) ON COMMIT PRESERVE ROWS;
  2. Füllen Sie die DGTT mit Daten auf.
    INSERT INTO SESSION.STAT_COLL_TABLE (CREATOR, NAME) VALUES (…...);
  3. Rufen Sie die gespeicherte Prozedur auf.
    CALL DB2OE.OPT_STAT_ADVICE (
       'SESSION',
       'STAT_COLL_TABLE', 
       '2',
        ?,
        ?,
        ?
    );

Die nachfolgende Beispieljobsteuersprache zeigt, wie diese Schnittstelle mit DSNTEP2 aufgerufen wird:

//STEP01 EXEC TSOBATCH,DB2LEV=DB2A
//SYSTSIN DD *
DSN S(VA1A) R(1) T(1)
RUN PROGRAM(DSNTEP2) PLAN(DSNTEP2) PARM('NOMIXED')
END
//SYSIN DD *
  DECLARE GLOBAL TEMPORARY TABLE SESSION.STAT_COLL_TABLE (
        CREATOR VARCHAR(128),
        NAME VARCHAR(128)
   ) ON COMMIT PRESERVE ROWS;

  INSERT INTO SESSION.STAT_COLL_TABLE (CREATOR, NAME) VALUES (…...);

  CALL DB2OE.OPT_STAT_ADVICE (
   'SESSION', 'STAT_COLL_TABLE',
   '2',
   ?,
   ?,
   ?
  );

Nächste Schritte

Wenn die gespeicherte Prozedur einen Fehler meldet, müssen Sie Verzeichnisse für die JavaOut- und JavaErr-Parameter definieren. Stellen Sie sicher, dass Ihre Berechtigungs-ID das Zugriffsrecht zum Lesen und Schreiben für diese Verzeichnisse hat. Starten Sie dann einen Trace. Rufen Sie die gespeicherte Prozedur erneut auf. Wenn der Fehler auftritt, sammeln Sie die Dateien, die in den JavaOut- und JavaErr-Verzeichnissen generiert wurden. Wenden Sie sich an den IBM Support und senden Sie die Dateien gemäß den Anweisungen Ihres Supportmitarbeiters.

Feedback