Cuando Oracle recibe una consulta, el Cost Based Optimizer (CBO) analiza diferentes alternativas y selecciona la que considera más eficiente.
El Execution Plan permite conocer:
Oracle permite analizar el plan mediante herramientas como EXPLAIN PLAN y DBMS_XPLAN, además de información de ejecución real.
Al analizar un plan buscamos identificar:
La pregunta principal es:
¿Oracle está procesando más información de la necesaria?
Algunos operadores habituales son:
Un TABLE ACCESS FULL no significa necesariamente que exista un problema.
Si la consulta necesita una gran parte de la tabla, puede ser la mejor alternativa.
Oracle puede utilizar estrategias como:
La elección depende de factores como:
Un elemento fundamental del tuning en Oracle es la calidad de las estadísticas utilizadas por el Optimizer.
Debemos comparar, cuando disponemos de información real:
Estimated Rows
vs.
Actual Rows
Una diferencia importante puede explicar por qué Oracle eligió un plan poco eficiente.
El tuning puede involucrar:
Oracle permite utilizar Optimizer Hints para influir explícitamente en determinadas decisiones del Optimizer.
Por ejemplo:
Los hints permiten intervenir directamente sobre determinadas decisiones del plan, pero deben utilizarse cuidadosamente y entendiendo primero por qué el Optimizer eligió el plan original.
Oracle dispone de SQL Plan Management (SPM) y SQL Plan Baselines.
Este mecanismo permite conservar planes de ejecución conocidos y considerados adecuados, de manera que el Optimizer pueda utilizarlos como referencia y evitar regresiones de performance.
Esto resulta especialmente útil cuando:
El concepto es:
Plan eficiente
↓
Cambio en estadísticas / datos / entorno
↓
Nuevo plan menos eficiente
↓
Plan Baseline
↓
Comportamiento estabilizado
Dependiendo del problema podemos:
Después se vuelve a analizar el plan y se comprueba si la ejecución realmente mejoró.
El objetivo es que Oracle:
lea menos → procese menos → utilice menos recursos → responda más rápido.
El Execution Plan permite entender cómo Oracle decidió resolver la consulta y qué alternativas tenemos para optimizarla.