Как проверить уровень изоляции?

Как мне проверить, какой IL установлен в моей оракуловой базе данных? Как я могу изменить это? Спасибо заранее.

1 ответ

Чтобы установить уровень изоляции

Только для чтения Уровень изоляции транзакции

Уровни изоляции могут быть установлены как Для уровня транзакции:

SET TRANSACTION ISOLATION LEVEL READONLY;

Для уровня сессии:

ALTER SESSION SET ISOLATION_LEVEL READONLY;

Для уровня изоляции Serializable Transaction

Уровень транзакции:

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

Уровень сеанса:

ALTER SESSION SET ISOLATION_LEVEL SERIALIZABLE;

Для уровня изоляции Read Committed Transaction

Уровень транзакции:

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

Уровень сеанса:

ALTER SESSION SET ISOLATION_LEVEL READ COMMITTED;  

Чтобы найти уровень изоляции:

Когда транзакция в процессе:

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;
Другие вопросы по тегам