Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie können Sie sehen, welche Transaktionsisolationsstufe eine beliebige Oracle-Sitzung verwendet?

Sie können Bit 28 im flag testen Spalte in v$transaction [1] .

SELECT s.sid, s.serial#,
  CASE BITAND(t.flag, POWER(2, 28))
    WHEN 0 THEN 'READ COMMITTED'
    ELSE 'SERIALIZABLE'
  END AS isolation_level
FROM v$transaction t, v$session s
WHERE t.addr = s.taddr
  AND s.sid = :sid
  AND s.serial# = :serial;

Denken Sie nur an v$transaction listet nur aktive Transaktionen auf [2] ; Sie müssen beispielsweise ein insert/update/delete/merge ausführen oder „for update“[3] .