BIND mit EXPLAIN(YES), REOPT(VARS) und PLAN_TABLE
- Dieses Thema hat 1 Antwort und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 16 Jahre von
Anonym.
-
AuthorPosts
-
3. September 2007 um 12:55 Uhr #2802
AnonymInaktivHallo,
ich binde ein COBOL-Programm, das statisches SQL verwendet mit den BIND OPTIONs REOPT(VARS) und EXPLAIN(YES).
Gibt es eine Möglichkeit, den Zugriffspfad, der dann zur Laufzeit gewählt wird, zu sehen? In der PLAN_TABLE sehe ich nach der Programmausführung nur denselben Pfad, den ich bereits nach dem BIND gesehen habe (mit dem "alten" TIMESTAMP und der "alten" BIND-TIME).
Viele Grüße
Christoph
5. September 2007 um 20:35 Uhr #3183
AnonymInaktivHallo Christoph,
die Wege des Optimizer sind nicht 100%-ig vorhersehbar und können sich zur Laufzeit nochmals ändern – nicht zuletzt auch wegen der vom Benutzer gewünschten Reoptimierung. Der Explain Output, die PLAN_TABLE (u.a.), gibt nur Anhaltspunkte für den voraussichtlichen Zugriffsplan. Wenn der Anwender es allerdings besser als der Optimizer weiß, gibt es die Möglichkeit DB2 Hinweise zu geben (siehe "Giving optimization hints to DB2": http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.db2.doc.admin/p9li375.htm).
Das EXPLAIN(YES) als BIND Option wirkt sich nur beim BIND und nicht beim RUN aus.
Am Ende der PREPARE Phase wird der IFCID 22 erzeugt, der DB2 Tools (wie z.B. DB2 PM und PE und anderen) den Zugriff auf Infos zum tatsächlich gewählten Access Path gewährt. Der Inhalt ist ähnlich dem der PLAN_TABLE.
Vielleicht hilft Dir das (unter V8) kostenfreie IBM DB2 for z/OS Tool Visual Explain weiter! (Hier: http://www.ibm.com/software/data/db2/zos/osc/ve/index.html).
Gruß
Gernot
-
AuthorPosts
You must be logged in to reply to this topic.