sql >> Databasteknik >  >> RDS >> Oracle

Hur kan du se vilken transaktionsisoleringsnivå en godtycklig orakelsession använder

Du kan testa bit 28 i flag kolumnen i 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;

Kom bara ihåg att v$transaction listar endast aktiva transaktioner [2] ; till exempel måste du utfärda en infogning/uppdatering/delete/merge, eller använda "för uppdatering"[3] .




  1. Hur ADD_MONTHS() fungerar i MariaDB

  2. mysql - kolumnen kan inte vara null

  3. Varför tar ActiveRecord destroy_all så lång tid?

  4. mysql returnerar resultat från uppdatering