sql >> Database >  >> RDS >> Oracle

Hoe kunt u zien welk transactie-isolatieniveau een willekeurige Oracle-sessie gebruikt?

Je kunt bit 28 testen in de flag kolom 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;

Onthoud gewoon dat v$transaction geeft alleen actieve transacties weer [2] ; u moet bijvoorbeeld een insert/update/delete/merge uitgeven, of "for update"[3] .




  1. Een geserialiseerde tekenreeks toevoegen die al in de database bestaat

  2. sql cross join - wat voor nut heeft iemand er voor gevonden?

  3. Een serverloze GraphQL-API maken voor MySQL, Postgres en Aurora

  4. Een GROUP BY-verklaring vooraf bestellen