Tiempo ejecución consulta sql

Para medir el tiempo exacto de ejecución de una consulta en Oracle, puedes utilizar algunas herramientas y comandos que ofrece la base de datos y el cliente SQL, como SQL*Plus. Aquí tienes varias formas de hacerlo:

1. Usar SET TIMING ON en SQL*Plus

Si estás utilizando SQL*Plus, puedes activar la opción TIMING que mide automáticamente el tiempo que tarda cada consulta en ejecutarse.

SET TIMING ON
SELECT * FROM tu_tabla;

Al activar SET TIMING ON, al final de la ejecución de la consulta, SQL*Plus te mostrará el tiempo total en pantalla.

2. Usar DBMS_UTILITY.GET_TIME

Oracle tiene el paquete DBMS_UTILITY que incluye la función GET_TIME, que devuelve el tiempo en centésimas de segundo desde un punto de referencia específico. Puedes usar esta función antes y después de la consulta para calcular el tiempo transcurrido.

DECLARE
    inicio NUMBER;
    fin NUMBER;
    tiempo_total NUMBER;
BEGIN
    inicio := DBMS_UTILITY.GET_TIME;

    — Ejecuta tu consulta aquí
    FOR r IN (SELECT * FROM tu_tabla) LOOP
        NULL;  — Aquí podrías procesar los resultados si es necesario
    END LOOP;

    fin := DBMS_UTILITY.GET_TIME;
    tiempo_total := (fin – inicio) / 100; — Divide por 100 para obtener segundos

    DBMS_OUTPUT.PUT_LINE(‘Tiempo de ejecución: ‘ || tiempo_total || ‘ segundos’);
END;
/

3. Usar SQL Developer

Si utilizas Oracle SQL Developer, ejecuta la consulta directamente y observa el panel de «Messages» (Mensajes) al final de la ejecución. SQL Developer mostrará el tiempo de ejecución de la consulta.

4. Usar herramientas de monitoreo como AWR o Statspack

Si tienes privilegios de DBA, puedes hacer un análisis más detallado usando AWR (Automatic Workload Repository) o Statspack. Estas herramientas permiten ver los tiempos de ejecución de consultas específicas y analizar el rendimiento de consultas en la base de datos a lo largo del tiempo.

5. Monitoreo en V$SQL

Otra opción avanzada es consultar la vista V$SQL para obtener información sobre el tiempo de ejecución de consultas que ya se han ejecutado y están en el caché de SQL. Por ejemplo:

SELECT
    sql_text,
    elapsed_time / 1000000 AS elapsed_seconds
FROM
    v$sql
WHERE
    sql_text LIKE ‘%tu_query%’ AND
    ROWNUM = 1;

Este enfoque es útil si necesitas analizar varias ejecuciones y hacer un seguimiento a nivel de base de datos.

Estos métodos te ayudarán a medir el tiempo de ejecución de tus consultas en una base de datos Oracle de forma precisa.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *