cross clmn

Thursday, 19 March 2026

SQL Tunniing update

SELECT

    SUM(CASE 

            WHEN UPPER(DBMS_LOB.SUBSTR(t.sql_text, 1000, 1)) LIKE 'INSERT%' 

            THEN s.executions_delta ELSE 0 

        END) AS total_inserts,


    SUM(CASE 

            WHEN UPPER(DBMS_LOB.SUBSTR(t.sql_text, 1000, 1)) LIKE 'UPDATE%' 

            THEN s.executions_delta ELSE 0 

        END) AS total_updates,


    SUM(CASE 

            WHEN UPPER(DBMS_LOB.SUBSTR(t.sql_text, 1000, 1)) LIKE 'DELETE%' 

            THEN s.executions_delta ELSE 0 

        END) AS total_deletes,


    SUM(CASE 

            WHEN UPPER(DBMS_LOB.SUBSTR(t.sql_text, 1000, 1)) LIKE 'MERGE%' 

            THEN s.executions_delta ELSE 0 

        END) AS total_merges,


    SUM(s.executions_delta) AS total_dml

FROM

    dba_hist_sqlstat s

JOIN

    dba_hist_snapshot sn

    ON s.snap_id = sn.snap_id

    AND s.dbid = sn.dbid

    AND s.instance_number = sn.instance_number

JOIN

    dba_hist_sqltext t

    ON s.sql_id = t.sql_id

    AND s.dbid = t.dbid

WHERE

    sn.begin_interval_time >= TO_TIMESTAMP('2026-03-19 14:00:00', 'YYYY-MM-DD HH24:MI:SS')

    AND sn.end_interval_time <= TO_TIMESTAMP('2026-03-19 16:00:00', 'YYYY-MM-DD HH24:MI:SS')

    AND (

        UPPER(DBMS_LOB.SUBSTR(t.sql_text, 1000, 1)) LIKE 'INSERT%'

        OR UPPER(DBMS_LOB.SUBSTR(t.sql_text, 1000, 1)) LIKE 'UPDATE%'

        OR UPPER(DBMS_LOB.SUBSTR(t.sql_text, 1000, 1)) LIKE 'DELETE%'

        OR UPPER(DBMS_LOB.SUBSTR(t.sql_text, 1000, 1)) LIKE 'MERGE%'

    );