2019-11-03 09:07

主流数据库的默认隔离级别

王姐姐

数据库

(1794)

(0)

收藏

mysql,oracle,sql server中的默认事务隔离级别查看,更改


796066-20170402181558649-581777223.jpg

未提交读(隔离事务的最低级别,只能保证不读取物理上损坏的数据)


已提交读(数据库引擎的默认级别)


可重复读


可序列化(隔离事务的最高级别,事务之间完全隔离)


 


可串行化比较严谨,级别高;


MySQL


mysql默认的事务处理级别是'REPEATABLE-READ',也就是可重复读


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;


Oracle


oracle数据库支持READ COMMITTED 和 SERIALIZABLE这两种事务隔离级别。


默认系统事务隔离级别是READ COMMITTED,也就是读已提交


1.查看系统默认事务隔离级别,也是当前会话隔离级别


--首先创建一个事务

declare

     trans_id Varchar2(100);

  begin

     trans_id := dbms_transaction.local_transaction_id( TRUE );

  end; 


--查看事务隔离级别


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


SQL Server


默认系统事务隔离级别是read committed,也就是读已提交


1.查看系统当前隔离级别


DBCC USEROPTIONS 


isolation level 这一项的 Value 既是当前的隔离级别设置值


2.设置系统当前隔离级别


SET TRANSACTION ISOLATION LEVEL Read UnCommitted;


其中Read UnCommitted为需要设置的值

————————————————

版权声明:本文为CSDN博主「Amazing_deron」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/Deronn/article/details/86169486


0条评论

点击登录参与评论