Уровень изоляции в оракуле

Как получить текущий уровень изоляции транзакции (по умолчанию) в oracle?

10 голосов | спросил paweloque 14 PMpThu, 14 Apr 2011 19:03:19 +040003Thursday 2011, 19:03:19

2 ответа


5

Используя запрос из ответа SO Vincent Malgrat, вы можете получить уровень изоляции транзакции для текущей транзакции:

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');

Если вы еще не находитесь в транзакции, вы можете запустить ее со следующим:

declare 
   trans_id Varchar2(100);
begin
   trans_id := dbms_transaction.local_transaction_id( TRUE );
end;
/

Кажется, что было бы проще, чем это. Я не знаю, как получить уровень изоляции по умолчанию для сеанса, если это то, что вы ищете.

ответил Leigh Riffel 15 AMpFri, 15 Apr 2011 00:46:56 +040046Friday 2011, 00:46:56
3

- Я использую что-то вроде ниже

с q1 as ( выбрать различное имя, isdefault, value , декодировать (значение, 'serializable', SID, null) SID от V $ SES_OPTIMIZER_ENV где ниже (имя), например, «% изоляции%», по названию ) выберите q1. * , Vs.status, vs.username, vs.OSUSER, vs.MACHINE, vs.TERMINAL, vs.PROGRAM из q1, v $ session vs где q1.sid = vs.sid (+);

- С уважением. - AZ

ответил user33489 28 Jpm1000000pmTue, 28 Jan 2014 22:09:27 +040014 2014, 22:09:27

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132