您的位置:首页 > 数据库

Sql server脏读、更新丢失、不可重复读、幻象读问题及解决方案

2015-05-08 11:11 489 查看
1、脏读:一个事务读到另外一个事务还没有提交的数据。
解决方法:把事务隔离级别调整到READ COMMITTED,即SET TRAN ISOLATION LEVEL READ COMMITTED。这时我们重复上面的动作会发现事务二会一直等到事务一执行完毕再返回结果,因为此时事务以已经把自己的更改ROLLBACK了,所以事务二可以返回正确的结果。



2、更新丢失:



3、 不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同。
解决方法:把事务隔离级别调整到REPEATABLE READ。使用SET TRAN ISOLATION LEVEL REPEATABLE READ。这时我们重复上面的动作会发现事务二会一直等到事务一执行完毕再返回结果。



4、幻象读:一个事务先后读取一个范围的记录,但两次读取的纪录数不同。
解决方法:把事务隔离级别调整到SERIALIZABLE。使用SET TRAN ISOLATION LEVEL SERIALIZABLE。这时我们重复上面的动作会发现事务二会一直等到事务一执行完毕再返回结果。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐