對SQL SERVER 2000隔離等級的認識

來源:互聯網
上載者:User
       當鎖定用作並發控制機制時,它可以解決並發問題。這使所有事務得以在彼此完全隔離的環境中運行,但是任何時候都可以有多個正在啟動並執行事務。
         可串列性是通過運行一組並發事務達到的資料庫狀態,等同於這組事務按某種順序連續執行時所達到的資料庫狀態。

SQL-92 隔離等級
         儘管可串列性對於事務確保資料庫中的資料在所有時間內的正確性相當重要,然而許多事務並不總是要求完全的隔離。例如,多個作者工作於同一本書的不同章節。新章節可以在任意時候提交到項目中。但是,對於已經編輯過的章節,沒有編輯人員的批准,作者不能對此章節進行任何更改。這樣,儘管有未編輯的新章節,但編輯人員仍可以確保在任意時間該書籍項目的正確性。編輯人員可以查看以前編輯的章節以及最近提交的章節。

          事務準備接受不一致資料的層級稱為隔離等級。隔離等級是一個事務必須與其它事務進行隔離的程度。較低的隔離等級可以增加並發,但代價是降低資料的正確性。相反,較高的隔離等級可以確保資料的正確性,但可能對並發產生負面影響。應用程式要求的隔離等級確定了 SQL Server 使用的鎖定行為。

SQL-92 定義了下列四種隔離等級,

SQL Server 支援所有這些隔離等級:
未提交讀(事務隔離的最低層級,僅可保證不讀取物理損壞的資料)。
提交讀(SQL Server 預設層級)。
可重複讀。
可串列讀(事務隔離的最進階別,事務之間完全隔離)。
       如果事務在可串列讀隔離等級上運行,則可以保證任何並發重疊事務均是串列的。
下面四種隔離等級允許不同類型的行為。

         隔離等級                髒讀 不可重複讀取              幻像
未提交讀
提交讀
可重複讀
可串列讀

        事務必須運行於可重複讀或更高的隔離等級以防止丟失更新。當兩個事務檢索相同的行,然後基於原檢索的值對行進行更新時,會發生丟失更新。如果兩個事務使用一個 UPDATE 語句更新行,並且不基於以前檢索的值進行更新,則在預設的提交讀隔離等級不會發生丟失更新。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.