Mevcut (varsayılan) işlem yalıtım düzeyini kehanette nasıl alabilirim?
Mevcut (varsayılan) işlem yalıtım düzeyini kehanette nasıl alabilirim?
Yanıtlar:
Başvuruda bulunan SO yanıtı Vincent Malgrat'tan gelen sorguyu kullanarak, devam etmekte olan işlem için işlem yalıtım düzeyini nasıl elde edebileceğiniz aşağıda açıklanmıştır:
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
JOIN v$session s ON t.addr = s.taddr AND s.sid = sys_context('USERENV', 'SID');
Zaten bir işlemde değilseniz, aşağıdakilerle bir işlem başlatabilirsiniz:
declare
trans_id Varchar2(100);
begin
trans_id := dbms_transaction.local_transaction_id( TRUE );
end;
/
Bundan daha kolay bir yol olacak gibi görünüyor. Aradığın şey buysa, oturum için varsayılan yalıtım düzeyini nasıl alacağımı bilmiyorum.
- Aşağıdaki gibi bir şey kullanıyorum
q1 ile (ayrı ad, isdefault, değer, kod çözme (değer, 'serileştirilebilir', SID, null) SID değerinden V $ SES_OPTIMIZER_ENV, burada '% isolation%' adıyla sipariş gibi) q1'i seçin. *, vs .status, vs.username, vs.OSUSER, vs.MACHINE, vs.TERMINAL, vs.PROGRAM q1, v $ session vs burada q1.sid = vs.sid (+);
-- Saygılarımızla. - AZ