MSSQL 事務級別

一個系統項目做大了,就會遇到性能問題.數據庫的優化將是解決性能問題的關鍵之一.

爲什麼數據庫讀取慢,事務級別正是此問題的關鍵之一.

也就是說,一些非重要的查詢可以使用低級事務進行查詢,就不會受到其它事務的阻塞等待.


1.Read Uncommitted 指定語句可以讀取已由其他事務修改但尚未提交的行.最低等級的事務隔離,僅僅保證了讀取過程中不會讀取到非法數據.

conn.BeginTransaction(IsolationLevel.ReadUncommitted)

命令:
SET TRANSACTION ISOLATION LEVEL Read Uncommitted 


2.Read Committed:大多數主流數據庫的默認事務等級,保證了一個事務不會讀到另一個並行事務已修改但未提交的數據,避免了“髒讀取”

conn.BeginTransaction(IsolationLevel.ReadCommitted)

SET TRANSACTION ISOLATION LEVEL Read Committed

3. Repeatable Read:保證了一個事務不會修改已經由另一個事務讀取但未提交(回滾)的數據。避免了“髒讀取”和“不可重複讀取”的情況,但是帶來了更多的性能損失

conn.BeginTransaction(IsolationLevel.RepeatableRead)

SET TRANSACTION ISOLATION LEVEL Repeatable Read

4.Serializable:最高等級的事務隔離,上面3種不確定情況都將被規避。這個級別將模擬事務的串行執行。


conn.BeginTransaction(IsolationLevel.Serializable)

SET TRANSACTION ISOLATION LEVEL Serializable 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章