Abfrageoptimierung mit der Bindeoption REOPT Damit eine Abfrageoptimierung (bzw. Reoptimierung) für statische und dynamische SQL-Anweisungen, die Hostvariablen, Sonderregister oder Parametermarken enthalten, ausgeführt werden kann, binden Sie das Paket mit der Bindeoption REOPT. Wenn diese Option verwendet wird, wird der Zugriffspfad für eine SQLAnweisung, die sowohl zu dem Paket gehört als auch Hostvariablen, Parametermarken oder Sonderregister enthält, mit den Werten dieser Variablen, und nicht mit Standardschätzwerten, die der Compiler auswählt, optimiert. Die Optimierung erfolgt bei der Ausführung der Abfrage, wenn die Werte verfügbar sind. Zugehörige Konzepte: 1. Auswirkungen von REOPT bei "static SQL" Die Bind Option REOPT kann "static SQL" Statements, die "host variables" oder "special register" enthalten, veranlassen, sich wie "incremental-bind" Statements zu verhalten. Das bedeutet, dass diese Statements zum Zeitpunkt der EXECUTE oder OPEN Anweisung kompiliert werden, anstatt zur "bind time". Währen dieser Kompilation wird der "access plan" auf der Basis der "echten" Werte in diesen Variablen festgelegt. Mit REOPT ONCE wird der "access plan" nach dem ersten OPEN / EXECUTE "gecached" und für folgende Ausführungen des Statements genutzt. Mit REOPT ALWAYS wird der "access plan" für jeden OPEN / EXECUTE "equest immer wieder neu generiert und die jeweilig aktuelle- "host variable"-, "parameter marker"- und/oder Spezialregister- Werte werden zur Erzeugung des neuen Plans verwendet. 2. Auswirkungen von REOPT bei "dynamic SQL" Wird die Option REOPT ALWAYS angegeben, so verschiebt DB2(R) das "preparing" jedweden Statements, das "host variable", "parameter marker" oder Spezialregister enthält, bis zu dem Zeitpunkt, an dem es ein OPEN oder EXECUTE Statement erkennt. Dann werden die werte für diese Variablen erkennbar und der "access plan" kann erzeugt werden. Folgende OPEN / EXECUTE Requests für dasselbe Statement veranlassen ein "recompile" und "reoptimize" des Plans mit den aktuellen Werten aus den Variablen und die Ausführung des neu erzeugten Plans. Mit REOPT ONCE erreicht man eiun ähnliches Resultat, mit der Ausnahme, dass der Plan nur ein einziges Mal optimiert wird. Der Plan wird im Cache abgelegt und von späteren Anforderungen genutzt. Nachzulesen in: Application Development Guide: Programming Client Applications. Und unter: Systemverwaltung und Optimierung.