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;

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Hey!

Merhaba! Ben EMRE, teknoloji, yazılım veri tabanı ve veri analitiği alanlarına tutkuluyum. Bu blogda, öğrendiklerimi ve tecrübelerimi paylaşarak faydalı içerikler sunmayı hedefliyorum. Boş zamanlarımda yeni teknolojiler keşfetmeyi, yazmayı ve kendimi geliştirmeyi seviyorum.

ıletısım adreslerım