Rollback + Object Bilgisi SQL

YUNUS EMRE ATAY

SELECT 
    s.inst_id,
    s.sid,
    s.serial#,
    s.username,
    s.osuser,
    s.machine,
    s.program,

    -- Transaction
    t.xidusn,
    t.used_ublk,
    ROUND(t.used_ublk * p.value / 1024 / 1024, 2) AS undo_mb,

    -- Session durumu
    s.status,
    s.state,
    s.event,
    s.seconds_in_wait,
    s.last_call_et,

    -- SQL bilgisi
    s.sql_id,
    q.sql_text,

    -- Object bilgisi (tahmini)
    o.owner,
    o.object_name,
    o.object_type,

    CASE 
        WHEN s.event LIKE 'undo%' OR s.event LIKE '%rollback%'
        THEN 'ROLLBACK'
        ELSE 'ACTIVE'
    END AS transaction_state

FROM gv$session s
JOIN gv$transaction t 
    ON s.saddr = t.ses_addr
   AND s.inst_id = t.inst_id

LEFT JOIN gv$sql q 
    ON s.sql_id = q.sql_id
   AND s.inst_id = q.inst_id

LEFT JOIN dba_objects o 
    ON q.sql_text LIKE '%' || o.object_name || '%'

JOIN gv$parameter p 
    ON p.name = 'db_block_size'
   AND p.inst_id = s.inst_id

ORDER BY t.used_ublk DESC;

Leave a Reply

Your email address will not be published. Required fields are marked with *

Hey!

Hello! I'm EMRE, and I'm passionate about technology, software, databases, and data analytics. In this blog, I aim to provide helpful content by sharing my learnings and experiences. In my spare time, I enjoy exploring new technologies, writing, and self-improvement.

My contact addresses