понедельник, 10 февраля 2014 г.

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

--Переключить уровень изоляции в режим SERIALIZABLE:
set transaction isolation level serializable;

--Переключить уровень изоляции в режим READ COMMITTED:
set transaction isolation level read committed;

--Узнать уровень изоляции неподтвержденной транзакции:
/* Если 29-й бит поля FLAG таблицы v$transaction равен "0", то уровень 'READ COMMITTED', иначе 'SERIALIZABLE' */
SELECT
  s.sid,
  s.serial#,
  s.username,
  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.ses_addr=s.saddr);

Источник:
http://stackoverflow.com/questions/3663343/how-can-you-see-what-transaction-isolation-level-an-arbitrary-oracle-session-is

- BITAND:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions014.htm
- POWER:
(возведение числа1 в степень, выраженную числом2)
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions112.htm

Комментариев нет:

Архив