1. 程式人生 > >oracle,mysql,sql server三大數據庫的事務隔離級別查看方法

oracle,mysql,sql server三大數據庫的事務隔離級別查看方法

glob declare ddr 存在 lag har oca flag ali

1:mysql的事務隔離級別查看方法

mysql 最簡單,執行這條語句就行:select @@tx_isolation

技術分享圖片

詳情:

1.查看當前會話隔離級別

select @@tx_isolation;

2.查看系統當前隔離級別

select @@global.tx_isolation;

3.設置當前會話隔離級別

set session transaction isolatin level repeatable read;

4.設置系統當前隔離級別

set global transaction isolation level repeatable read;

2:sql server事務隔離級別查看方法

執行:DBCC USEROPTIONS

技術分享圖片

3:oracle事務隔離級別查看方法

oracle比較麻煩點,執行以下語句

1):

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

2):

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

技術分享圖片

註意事項:

1):如果出現 v$transaction 不存在,先考慮用戶權限是否足夠;

2):如果執行第二句時報 empty 錯誤,是由於還沒有創建事務(所以先執行第一句在執行第二句);

oracle,mysql,sql server三大數據庫的事務隔離級別查看方法