Das Optimierungsprogramm unternimmt jeden Versuch, die in einem Optimierungsprofil
angegebenen Optimierungsrichtlinien einzuhalten. Das Optimierungsprogramm kann jedoch
ungültige oder nicht anwendbare Richtlinien zurückweisen.
Vorbereitende Schritte
Bevor die EXPLAIN-Funktion verwendet werden kann, müssen EXPLAIN-Tabellen vorhanden sein. Die DDL-Anweisungen (DDL = Data Definition Language, Datendefinitionssprache) zur Erstellung
der EXPLAIN-Tabellen sind in der Datei EXPLAIN.DDL enthalten, die
sich im Unterverzeichnis misc des Verzeichnisses sqllib befindet.
Prozedur
Führen Sie die folgenden Schritte aus, um zu prüfen, ob eine gültige Optimierungsrichtlinie
verwendet wurde:
- Geben Sie die EXPLAIN-Anweisung für die Anweisung ein, für die die Richtlinien gelten.
Wenn eine Optimierungsrichtlinie für die Anweisung durch ein Optimierungsprofil
wirksam war, wird der Name des Optimierungsprofils als Argument
des Operators RETURN in der Tabelle EXPLAIN_ARGUMENT ausgewiesen. Und wenn die Optimierungsrichtlinie eine eingebettete SQL-Optimierungsrichtlinie
bzw. ein Anweisungsprofil enthielt, die der aktuellen Anweisung entsprach, wird der
Name des Anweisungsprofils als Argument eines Operators RETURN ausgegeben. Die Typen dieser beiden neuen Argumentwerte sind OPT_PROF und STMTPROF.
- Untersuchen Sie die Ergebnisse der mit EXPLAIN bearbeiteten Anweisung.
Die folgende Abfrage auf die EXPLAIN-Tabellen kann modifiziert werden, um den Namen
des Optimierungsprofils und den Namen des Anweisungsprofils für Ihre bestimmte Kombination
aus EXPLAIN_REQUESTER, EXPLAIN_TIME, SOURCE_NAME, SOURCE_VERSION und QUERYNO zurückzugeben:
SELECT VARCHAR(B.ARGUMENT_TYPE, 9) as TYPE,
VARCHAR(B.ARGUMENT_VALUE, 24) as VALUE
FROM EXPLAIN_STATEMENT A, EXPLAIN_ARGUMENT B
WHERE A.EXPLAIN_REQUESTER = 'SIMMEN'
AND A.EXPLAIN_TIME = '2003-09-08-16.01.04.108161'
AND A.SOURCE_NAME = 'SQLC2E03'
AND A.SOURCE_VERSION = ''
AND A.QUERYNO = 1
AND A.EXPLAIN_REQUESTER = B.EXPLAIN_REQUESTER
AND A.EXPLAIN_TIME = B.EXPLAIN_TIME
AND A.SOURCE_NAME = B.SOURCE_NAME
AND A.SOURCE_SCHEMA = B.SOURCE_SCHEMA
AND A.SOURCE_VERSION = B.SOURCE_VERSION
AND A.EXPLAIN_LEVEL = B.EXPLAIN_LEVEL
AND A.STMTNO = B.STMTNO
AND A.SECTNO = B.SECTNO
AND A.EXPLAIN_LEVEL = 'P'
AND (B.ARGUMENT_TYPE = 'OPT_PROF' OR ARGUMENT_TYPE = 'STMTPROF')
AND B.OPERATOR_ID = 1
Wenn die Optimierungsrichtlinie aktiv ist und die mit EXPLAIN-bearbeitete Anweisung der Anweisung
entspricht, die im Element STMTKEY (Anweisungsschlüssel) der Optimierungsrichtlinie enthalten ist, liefert
eine Abfrage ähnlich dem vorhergehenden Beispiel eine Ausgabe ähnlich der nachfolgend dargestellten Ausgabe. Der Wert des STMTPROF-Arguments ist derselbe wie der des ID-Attributs
im Element STMTPROFILE.
TYPE VALUE
--------- --------------------------
OPT_PROF NEWTON.PROFILE1
STMTPROF Guidelines for SAMP Q9