Dado que SQL es un lenguaje declarativo, nosotros no le decimos como hacer las cosas, solo le decimos que hacer. Por lo tanto el motor de base de datos, decide que camino tomar.
Si tenemos un problema de performace en alguna consulta, lo que podemos hacer es pedirle a oracle que nos explique que esta haciendo, y de esta manera ver si le falta un indice o si la podemos ayudar.
La instrucción EXPLAIN PLAN muestra los planes de ejecución elegidos por el optimizador de Oracle para las instrucciones SELECT, UPDATE, INSERT y DELETE. El plan de ejecución de una declaración es la secuencia de operaciones que Oracle realiza para ejecutar la instrucción.
Muestra la siguiente información:
- Un orden de las tablas a las que hace referencia la consulta o update
- Un método de acceso para cada tabla mencionada en la consulta o update
- Un método de combinación para tablas afectadas por operaciones de combinación de la instrucción.
- Operaciones de datos como filtro, clasificación o agregación
- Optimización, como el costo y la cardinalidad de cada operación
- Particionamiento, como el conjunto de particiones accedidas
- Ejecución paralela
Para ejecutar el EXPLAIN PLAN debemos ejecutar por ejemplo esta query:
EXPLAIN PLAN FOR SELECT last_name FROM employees;
En este caso se escribio el plan de ejecución en una vista por lo que si queremos verlo, podemos hacer:
SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY());
Luego podemos escribir otros post que nos enseñen como entender los query plans. Pero eso es todo por ahora.