Wenn die DDL-Anweisungen ausgeführt werden, machen sie die Zugriffspläne von statischen SQL-DML-Anweisungen ungültig, die auf die Objekte verweisen, die die DDL-Anweisungen erstellen, ändern oder löschen. Die DML-Anweisungen können weiterhin ausgeführt werden, obwohl ihre Zugriffspläne ungültig gemacht wurden. Die Ausführung der DML-Anweisungen generiert keine Warnungen oder Fehlernachrichten.
Wenn Zugriffspläne ungültig gemacht werden, sind zwei Konsequenzen möglich:
In beiden Fällen bietet Ihre Nicht-pureQuery-API-Anwendung zwei der wichtigsten Vorteile von statischem SQL nicht mehr: gleichbleibende Zugriffspfade und potenzielle Leistungssteigerungen.
IBM® empfiehlt, dass Anwendungen, die Sie mit Clientoptimierung verwenden, keine DDL-Anweisungen ausführen.
Wenn Ihre Anwendung DDL-Anweisungen verwendet, die gebunden sind, und executionMode auf den Wert STATIC gesetzt ist, führt pureQuery die DDL-Anweisungen aus.
Wenn Ihre Anwendung DDL-Anweisungen verwendet, die nicht gebunden sind, und executionMode auf den Wert STATIC und allowDynamicSQL auf den Wert TRUE gesetzt ist, führt pureQuery die DDL-Anweisungen ebenfalls aus. Wenn Ihre Anwendung jedoch DDL-Anweisungen verwendet, die nicht gebunden sind, der Wert von executionMode auf STATIC und der Wert von allowDynamicSQL auf FALSE gesetzt ist, führt pureQuery die DDL-Anweisungen aus und gibt eine Ausnahmebedingung aus, die angibt, dass die statische Anweisung nicht gefunden wurde.