groovydallas
groovydallas

Reputation: 41

How to check isoloation level?

How do I check what IL is being set in my oracle DB. How do I change it? Many thanks in advance.

Upvotes: 4

Views: 7571

Answers (1)

SenthilPrabhu
SenthilPrabhu

Reputation: 659

To Set Isolation Level

For Read only Transaction isolation level

Isolation Levels can be set as For Transaction level:

SET TRANSACTION ISOLATION LEVEL READONLY;

For Session level:

ALTER SESSION SET ISOLATION_LEVEL READONLY;

For Serializable Transaction isolation level

Transaction level:

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

Session level:

ALTER SESSION SET ISOLATION_LEVEL SERIALIZABLE;

For Read Committed Transaction isolation level

Transaction Level:

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

Session Level:

ALTER SESSION SET ISOLATION_LEVEL READ COMMITTED;  

To find the Isolation Level:

When Transaction is in Progress:

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

When the transaction is not in process

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

Upvotes: 2

Related Questions