資料庫的隔離級別主要是為讀操作定義保護級別的;對於修改寫操作,無論哪種隔離級別都可以保證寫操作的正確執行。sql標準為三種***:
dirty reads: 事務t2提交了資料,事務t1這時讀取了t2提交的資料,t2發生異常rollback,那麼t1讀取的資料就是有問題的資料,是dirty read。
unrepeatable reads:事務t1讀取資料以後,事務t2修改了t1讀取的資料,事務t1以同樣的查詢從資料庫讀取資料,就會發現和上一次讀取的不一致,所以稱為unrepeatable reads。
phantom reads:事務t1查詢資料庫並返回資料,事務t2插入了新的資料,事務t1一同樣的查詢讀取資料庫資料,發現會多出一些資料,所以稱為phantom reads。
設定合適的資料庫事務隔離級別可以防止上面問題的發生,但是隔離級別越高併發性越差一般會設定為read-committed
dirty reads
unrepeatable reads
phantom reads
read uncommited
y y
yread commited
n y
yrepeatable read
n n
yserializablenn
ninf:了解和解決 sql server 7.0 或 2000 阻塞問題
如何監視 sql server 2000 阻塞
資料庫隔離級別
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...