日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

SQL Server事务的隔离级别

發(fā)布時間:2025/7/25 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL Server事务的隔离级别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

SQL Server事務(wù)的隔離級別

########## 數(shù)據(jù)庫中數(shù)據(jù)的一致性 ##########

針對并發(fā)事務(wù)出現(xiàn)的數(shù)據(jù)不一致性,提出了4個級別的解決方法:

?隔離級別?第一類丟失更新?臟讀不可重復(fù)讀?第二類丟失更新?虛讀
?未提交讀?未發(fā)生?發(fā)生?發(fā)生?發(fā)生?發(fā)生
?提交讀?未發(fā)生?未發(fā)生?發(fā)生?發(fā)生?發(fā)生
?可重復(fù)讀?未發(fā)生?未發(fā)生?未發(fā)生?未發(fā)生?發(fā)生
?串行化?未發(fā)生?未發(fā)生?未發(fā)生?未發(fā)生?未發(fā)生
???

1.未提交讀

采用排它鎖(update, insert, delete),解決了丟失更新問題,但是臟讀仍然會出現(xiàn)。

例1:

begin tran

update t1 set t1.name = 'yyy'

waitfor delay '00:00:10' --等待10秒

rollback tran

例2:

set transaction isolation level read uncommitted

begin tran

select * from t1

commit tran

結(jié)果:例2返回更新后的值(yyy),盡管最后更新回滾了。

?

2.提交讀

采用共享鎖(select)+排它鎖(update, insert, delete),解決了丟失更新問題,也解決了臟讀問題。SQL Server默認屬于這個隔離級別。

?

3.可重復(fù)讀

采用修改鎖(update)+排它鎖(insert, delete)+共享鎖(select),解決了丟失更新問題,臟讀問題,但是會出現(xiàn)幻像讀。

例3:

set transaction isolation level repeatable read

begin tran

select * from t1

waitfor delay '00:00:10'

select * from t1

commit tran

例4:

set transaction isolation level repeatable read

begin tran

delete from t1 where t1.id = 8

commit tran

結(jié)果:例3,2次返回的結(jié)果集都一樣,都含有t1.id=8的行。

?

4.可串行讀

采用一個事務(wù)執(zhí)行完后,才能執(zhí)行第2個事務(wù)(被阻塞)的串行方式,解決了以上所有的問題。

例5:

set transaction isolation level serializable

begin tran

select * from t1

waitfor delay '00:00:10'

commit tran

例6:

set transaction isolation level serializable

begin tran

delete from t1 where t1.id = 9

commit tran

結(jié)果:例5,2次都返回一樣的結(jié)果,是刪除前的。只能說明實現(xiàn)了可重復(fù)讀級別的事務(wù)。

例7:

set transaction isolation level serializable

begin tran

select * from t1

waitfor delay '00:00:10'

select * from t1

commit tran

例8:

set transaction isolation level serializable

begin tran

insert into t1(name) values('zhang')

commit tran

結(jié)果:例7,2次都返回一樣的結(jié)果,都是添加前的結(jié)果集。結(jié)合前面的例子說明是串行級別。

轉(zhuǎn)載于:https://www.cnblogs.com/wuxiang/p/3656171.html

總結(jié)

以上是生活随笔為你收集整理的SQL Server事务的隔离级别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。