<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                來自https://technet.microsoft.com/zh-cn/library/ms189122(v=sql.105).aspx # 數據庫引擎中的隔離級別 其他版本 ![](https://i-technet.sec.s-msft.com/Areas/Epx/Content/Images/ImageSprite.png?v=636366940422435367) 事務指定一個隔離級別,該隔離級別定義一個事務必須與其他事務所進行的資源或數據更改相隔離的程度。隔離級別從允許的并發副作用(例如,臟讀或幻讀)的角度進行描述。 事務隔離級別控制: * 讀取數據時是否占用鎖以及所請求的鎖類型。 * 占用讀取鎖的時間。 * 引用其他事務修改的行的讀取操作是否: * 在該行上的排他鎖被釋放之前阻塞其他事務。 * 檢索在啟動語句或事務時存在的行的已提交版本。 * 讀取未提交的數據修改。 選擇事務隔離級別不影響為保護數據修改而獲取的鎖。事務總是在其修改的任何數據上獲取排他鎖并在事務完成之前持有該鎖,不管為該事務設置了什么樣的隔離級別。對于讀取操作,事務隔離級別主要定義保護級別,以防受到其他事務所做更改的影響。 較低的隔離級別可以增強許多用戶同時訪問數據的能力,但也增加了用戶可能遇到的并發副作用(例如臟讀或丟失更新)的數量。相反,較高的隔離級別減少了用戶可能遇到的并發副作用的類型,但需要更多的系統資源,并增加了一個事務阻塞其他事務的可能性。應平衡應用程序的數據完整性要求與每個隔離級別的開銷,在此基礎上選擇相應的隔離級別。最高隔離級別(可序列化)保證事務在每次重復讀取操作時都能準確檢索到相同的數據,但需要通過執行某種級別的鎖定來完成此操作,而鎖定可能會影響多用戶系統中的其他用戶。最低隔離級別(未提交讀)可以檢索其他事務已經修改、但未提交的數據。在未提交讀中,所有并發副作用都可能發生,但因為沒有讀取鎖定或版本控制,所以開銷最少。 ## 數據庫引擎隔離級別 [](https://technet.microsoft.com/zh-cn/library/ms189122(v=sql.105).aspx#Anchor_0 "右鍵單擊以復制并共享此部分的鏈接") ISO 標準定義了下列隔離級別,SQL Server 數據庫引擎支持所有這些隔離級別: * 未提交讀(隔離事務的最低級別,只能保證不讀取物理上損壞的數據) * 已提交讀(數據庫引擎的默認級別) * 可重復讀 * 可序列化(隔離事務的最高級別,事務之間完全隔離) **重要提示** 在請求可序列化隔離級別時,復制的表上的 DDL 操作和事務可能失敗。這是因為復制查詢使用的提示可能與可序列化隔離級別不兼容。 SQL Server 還支持使用行版本控制的兩個事務隔離級別。一個是已提交讀隔離的新實現,另一個是新事務隔離級別(快照)。 * 當 READ_COMMITTED_SNAPSHOT 數據庫選項設置為 ON 時,已提交讀隔離使用行版本控制提供語句級讀取一致性。讀取操作只需要 SCH-S 表級別的鎖,不需要頁鎖或行鎖。當 READ_COMMITTED_SNAPSHOT 數據庫選項設置為 OFF(默認設置)時,已提交讀隔離的行為方式與其在早期版本 SQL Server 中行為方式相同。兩個實現都滿足已提交讀隔離的 ANSI 定義。 * 快照隔離級別使用行版本控制來提供事務級別的讀取一致性。讀取操作不獲取頁鎖或行鎖,只獲取 SCH-S 表鎖。讀取其他事務修改的行時,讀取操作將檢索啟動事務時存在的行的版本。當 ALLOW_SNAPSHOT_ISOLATION 數據庫選項設置為 ON 時,只能對數據庫使用快照隔離。默認情況下,用戶數據庫的此選項設置為 OFF。 **注意** SQL Server 不支持元數據的版本控制。因此,對于在快照隔離下運行的顯式事務中可以執行的 DDL 操作存在限制。在快照隔離下,BEGIN TRANSACTION 語句之后不允許使用任何公共語言運行時 (CLR) DDL 語句或下列 DDL 語句:ALTER TABLE、CREATE INDEX、CREATE XML INDEX、ALTER INDEX、DROP INDEX、DBCC REINDEX、ALTER PARTITION FUNCTION、ALTER PARTITION SCHEME。在隱式事務中使用快照隔離時允許使用這些語句。根據定義,隱式事務為單個語句,這使得它可以強制應用快照隔離的語義,即便使用 DDL 語句也是如此。違反此原則會導致錯誤 3961:“數據庫 '%.*ls' 中的快照隔離事務失敗,因為自此事務啟動后,該語句所訪問的對象已由其他并發事務中的 DDL 語句修改。這是不允許的,因為未對元數據進行版本控制。如果與快照隔離混合,對元數據的并發更新可能導致不一致。” 下表顯示了不同隔離級別導致的并發副作用。 ![](https://box.kancloud.cn/0fe85e97c04de827a03ef2f306576327_413x266.png) 有關每個事務隔離級別控制的特定類型的鎖或行版本控制的詳細信息,請參閱[SET TRANSACTION ISOLATION LEVEL (Transact-SQL)](https://technet.microsoft.com/zh-cn/library/ms173763(v=sql.105).aspx)。 ## 請參閱 [](https://technet.microsoft.com/zh-cn/library/ms189122(v=sql.105).aspx#Anchor_1 "右鍵單擊以復制并共享此部分的鏈接") #### 參考 [ALTER DATABASE (Transact-SQL)](https://technet.microsoft.com/zh-cn/library/ms174269(v=sql.105).aspx) #### 概念 [并發影響](https://technet.microsoft.com/zh-cn/library/ms190805(v=sql.105).aspx) [并發控制的類型](https://technet.microsoft.com/zh-cn/library/ms189132(v=sql.105).aspx)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看