資料庫 隔離級別

2022-09-20 23:18:12 字數 618 閱讀 1435

併發衝突

為了提高資料庫效能,就不能嚴格遵守事務隔離性要求,只能允許在乙個事務中進行其他事務的操作(併發)。但這樣就帶來了以下這些問題:

注意:乙個session(query)裡的操作不是併發。

隔離級別

檢視:dbcc useroptions

設定:未提交讀(read uncommitted):最低控制級別。事務還沒有提交,就可以讀。不申請共享鎖

提交讀(read committed):預設級別。已經提交了,才可以讀。可避免髒讀。共享鎖得到結果即釋放

可重複讀(repeatable read):除了無法避免幻讀,其他併發問題(包括「不可重複讀」)都可以避免。共享鎖一直到事務結束才釋放

序列化(serializable):最高端別。避免一切併發問題。共享鎖(還鎖定潛在修改:索引和表)直到事務結束才釋放

—— 以上通過鎖來控制,變化的只有共享鎖,排他鎖始終是在事務結束後釋放。

下面的**總結了各種隔離級別和各自的缺點

文章**自:快速開發平台– 雲微平台

資料庫隔離級別

read uncommited 讀未提交 最低級別,可讀取未提交事物的資料,這會導致髒讀,比如 某時刻會話a修改了乙個資料,但還未提交,此時會話b,讀取了該資料,這是,會話a回滾了事物,這就導致資料出現了不一致狀態,這就是髒讀 read commited 提交讀 避免了髒讀,但會導致不可重複讀,例如...

資料庫隔離級別

資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。可能出現 不會出現 髒讀 不可重複讀 幻讀read uncommitted re...

資料庫隔離級別

資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted rea...