Как проверить уровень изоляции?
Как мне проверить, какой 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;