Como solucionar el problema que existe en Oracle 11g > 12c cuando una query, en la segunda ejecución tarda considerablemente pero en la primera ejecución es instantanea.

Hola Amig@s,

Pues eso, si tenemos una 11g y al ejecutar determinadas consultas, que supuestamente entran bien por el indice correcto pero en su segunda ejecución tardan considerablemente a diferencia de la primera ejecución, puede deberse a una nueva particularidad que existe en las versiones 11g y superiores de Oracle.

Esta nueva particularidad se llama _OPTIMIZER_USE_FEEDBACK, aunque no está muy bien documentada permite al optimizador "aprender" de las consultas que realizamos en la bbdd para que en futuras ocasiones, pueda adaptar mejor los recursos al momento de ejecutarla. La mayoría de las veces, esto repercute en una pobre ejecución de las consultas y al final afecta a los entornos y tiempos de ejecución.

Para desactivarlo, solo tendremos que abrir un SQLPLUS como sysdba y ejecutar lo siguiente:

ALTER SESSION SET "_optimizer_use_feedback" = FALSE;

Vease también:

alter session set "_optimizer_mjc_enabled" = false;

alter session set "_optim_peek_user_binds" = false;

alter system set "sql_trace" = false scope=both;

Espero que les resulte útil.
Salu2.
Share on Google Plus
    Blogger Comment

0 comentarios: