Les instructions SQL exécutées invalident les plans d'accès des instructions DML SQL qui référencent les objets créés, modifiés ou déplacés par les instructions SQL. Les instructions DML peuvent toujours être exécutées même si leurs plans d'accès sont invalidés. L'exécution des instructions DML ne génère aucun message d'avertissement/d'erreur.
L'invalidation des plans d'accès peut avoir deux conséquences :
Dans les deux cas, votre application non-pureQuery perd deux des principaux avantages des instructions SQL : les chemins d'accès inchangés et les gains de performances possibles.
IBM® recommande que les applications que vous utilisez avec optimisation client n'exécutent pas d'instructions DDL.
Si votre application utilise des instructions DDL dont les accès sont définis et que la valeur executionMode est STATIC, pureQuery exécute les instructions DDL.
En outre, si votre application utilise des instructions DDL dont les accès ne sont pas définis, la valeur executionMode est STATIC et la valeur allowDynamicSQL est TRUE, pureQuery exécute les instructions DDL. Toutefois, si votre application utilise des instructions DDL dont les accès ne sont pas définis, la valeur executionMode est STATIC etla valeur allowDynamicSQL est FALSE, pureQuery exécute les instructions DDL et émet une exception "Static statement not found".