martes, 12 de noviembre de 2024

EXPLAIN PLAN para el DBA

 `EXPLAIN PLAN` es una herramienta en Oracle que te permite ver cómo la base de datos planea ejecutar una consulta. Puedes usarla para verificar si la consulta está utilizando índices y optimizar su rendimiento. Aquí tienes los pasos básicos:


1. Configurar la salida:

   - Primero, asegúrate de tener una tabla llamada `PLAN_TABLE` en tu esquema. Esta tabla almacena los resultados de `EXPLAIN PLAN`.

   - Puedes crearla con el siguiente comando si no existe:


   sql

     @?/rdbms/admin/utlxplan.sql

   


2. Ejecutar `EXPLAIN PLAN`:

   - Usa `EXPLAIN PLAN FOR` seguido de la consulta que quieres analizar.


     ```sql

     EXPLAIN PLAN FOR

     SELECT NVL(SUM(o.ncanprest), 1) AS can

     FROM fact_grl f, ord_hist o

     WHERE f.nfacgrl = o.nfacgrl

       AND f.ncodosoc = 1

       AND TRUNC(o.dfec_pre) BETWEEN :FecIni AND :FecFin;



3. Ver el plan de ejecución:

   - Luego, consulta el plan con el siguiente comando:


     ```sql

     SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY());

     ```


   - Este comando muestra el plan de ejecución en un formato legible. 


4. Interpretar el resultado:

   - Observa los valores en la columna `Operation` para ver las acciones realizadas (como "TABLE ACCESS FULL" o "INDEX RANGE SCAN").

   - Si ves "TABLE ACCESS FULL", Oracle está realizando un escaneo completo de la tabla, lo que suele ser menos eficiente.

   - Si ves "INDEX RANGE SCAN" o "INDEX UNIQUE SCAN", la consulta está utilizando un índice, lo cual es generalmente más eficiente.


Este análisis te permitirá ver si Oracle utiliza el índice y cómo está accediendo a los datos, ayudándote a ajustar la consulta o los índices según sea necesario.

No hay comentarios: