oracle sql performance based on sql text





SELECT h.SQL_ID, 
       s.SQL_TEXT,
       h.EXECUTIONS,
       h.ELAPSED_TIME,
       h.CPU_TIME,
       h.BUFFER_GETS,
       h.DISK_READS,
       h.ROWS_PROCESSED,
       h.MODULE
FROM (
    SELECT SQL_ID, 
           LISTAGG(TEXT, '') WITHIN GROUP (ORDER BY PIECE) AS SQL_TEXT
    FROM V$SQLTEXT
    GROUP BY SQL_ID
) s
JOIN DBA_HIST_SQLSTAT h ON s.SQL_ID = h.SQL_ID
WHERE h.SNAP_ID BETWEEN :start_snap_id AND :end_snap_id
ORDER BY h.BUFFER_GETS DESC;



SELECT 
    s.SQL_ID,
    t.SQL_TEXT,
    s.EXECUTIONS,
    s.ELAPSED_TIME,
    s.CPU_TIME,
    s.BUFFER_GETS,
    s.DISK_READS,
    s.ROWS_PROCESSED,
    s.MODULE
FROM 
    DBA_HIST_SQLSTAT s
JOIN 
    (SELECT SQL_ID, 
            LISTAGG(SQL_TEXT, '') WITHIN GROUP (ORDER BY PIECE) AS SQL_TEXT
     FROM DBA_HIST_SQLTEXT
     GROUP BY SQL_ID) t ON s.SQL_ID = t.SQL_ID
WHERE 
    UPPER(t.SQL_TEXT) LIKE '%YOUR_PATTERN%'  -- Replace 'YOUR_PATTERN' with the actual SQL pattern
AND 
    s.SNAP_ID BETWEEN :start_snap_id AND :end_snap_id -- Replace :start_snap_id and :end_snap_id with your snapshot range
ORDER BY 
    s.BUFFER_GETS DESC;






Comments

Popular posts from this blog

How To Purge Optimizer Statistics Advisor Old Records From 12.2 Onwards (Doc ID 2660128.1)

Oracle session snapper

Oracle Materialized View In-Depth and Materialized View refresh issues in 19c