欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

如何選擇行版本的隔離級別

系統 1702 0

基于行版本控制的隔離級別通過消除讀取操作的鎖來改善讀取并發。Microsoft SQL Server 引入了兩個使用行版本控制的事務隔離級別:

  • READ_COMMITTED_SNAPSHOT 數據庫選項為 ON 時,啟用使用行版本控制的已提交讀隔離的新實現。

  • ALLOW_SNAPSHOT_ISOLATION 數據庫選項為 ON 時,啟用的新的快照隔離級別。

對于大多數應用程序,建議應用使用行版本控制的已提交讀隔離,而不要應用快照隔離,原因如下:

  • 已提交讀隔離比快照隔離占用的 tempdb 空間少。

  • 已提交讀隔離可用于分布式事務,而快照隔離不能用于分布式事務。

  • 已提交讀隔離可用于大多數現有應用程序,而不需要進行任何更改。可以動態優化使用默認隔離級別(已提交讀)編寫的應用程序。已提交讀的行為(是否使用行版本控制)是由數據庫選項設置確定的,可以對其進行更改,而不會影響應用程序。

    注意:
    對于設計為依賴于已提交讀隔離的阻塞行為的應用程序,開發人員可能希望將應用程序更改為使用兩種模式的已提交讀隔離。否則,請注意將 READ_COMMITTED_SNAPSHOT 數據庫選項保持為 OFF。
  • 快照隔離很容易發生不適用于使用行版本控制的已提交讀隔離的更新沖突。當在快照隔離下運行的事務讀取另一個事務稍后會修改的數據時,快照事務對同一數據的更新會導致更新沖突,該事務將終止并回滾。而使用行版本控制的已提交讀隔離不存在此問題。

何時應用使用行版本控制的已提交讀隔離

使用行版本控制的已提交讀隔離提供語句級讀取的一致性。事務中的每條語句執行時,新的數據快照將產生,并在該語句執行完成之前對每條語句保持一致。發生下列情況時,啟用使用行版本控制的已提交讀隔離:

  • 當并發好處大于創建和管理行版本所增加的開銷時,將發生讀取器/編寫器阻塞。

  • 應用程序需要長時間運行的聚合或查詢(其中數據值必須與查詢啟動時的時點一致)絕對精確。

何時使用快照隔離

快照隔離提供事務級讀取的一致性。數據快照在快照事務啟動時產生并在事務持續時間內保持一致。發生下列情況時,使用快照隔離:

  • 需要開放式并發控制。

  • 由于更新沖突必須回滾事務的可能性較低。

  • 應用程序需要基于必須具有時點一致性的長時間運行的多語句查詢生成報告。快照隔離具有可重復讀取的優點(請參閱 并發影響 ),而不使用共享鎖。數據庫快照可以提供類似的功能,但必須手動實現。快照隔離自動為每個快照隔離事務提供數據庫中的最新信息。

基于行版本控制的隔離級別的優點

使用行版本控制的隔離級別具有以下優點:

  • 讀取操作檢索一致的數據庫快照。

  • SELECT 語句不會在讀取操作期間鎖定數據(讀取器不會阻止編寫器,編寫器也不會阻止讀取器)。

  • SELECT 語句可以訪問最后提交的行值,同時其他事務更新該行,而不會受到阻塞。

  • 死鎖的數量減少。

  • 事務所需的鎖的數量減少,這減少了管理鎖所需的系統開銷。

  • 鎖升級的次數減少。

基于行版本控制的隔離級別的開銷

確定使用基于行版本控制的隔離需要對比最小化鎖定的并發好處與維護和讀取行版本所需增加的資源使用量。考慮下列與啟用用于快照和已提交讀隔離級別的行版本控制關聯的開銷:

  • 當查詢所需的版本變舊且必須掃描長版本鏈時,會影響讀取性能。

  • tempdb 中維護行版本時,行版本控制會增加修改數據過程中的資源使用量。

  • 當 READ_COMMITTED_SNAPSHOT 或 ALLOW_SNAPSHOT_ISOLATION 數據庫選項為 ON 時,更新和刪除特定數據庫的事務必須維護行版本,即使不存在使用基于行版本控制的隔離級別的事務。構造使用行版本的一致的數據快照包括系統資源(CPU 和內存),并可能生成 I/O 活動。由于記錄版本存儲在 tempdb 中,因此當更多的 tempdb 頁可以存儲在行版本控制的內存中時,性能會更好,發出的 I/O 數也會更少。

    注意:
    通常,插入行不會生成行版本。但是,在某些情況下,INSERT 命令確實可以生成行版本。例如,如果在前一個刪除的行版本(虛影記錄)尚未截斷時將行插入具有唯一索引的表中,則 INSERT 命令將生成行版本。
  • tempdb 必須具有足夠的磁盤空間用于版本存儲區。如果存在超長時間運行的事務,則更新事務在該時間內生成的所有版本都必須保留在 tempdb 中。如果 tempdb 運行空間不足,更新操作并不會失敗,但使用行版本控制的讀取操作可能會失敗。

  • 行版本控制信息需要將 14 個字節添加到數據庫行。

  • 由于維護行版本的工作,更新性能可能較低。在典型的 OLTP 工作負荷中,每個更新僅更改數據庫中的一部分行。在這些系統中,與兩個選項都為 OFF 的數據庫相比,在選項為 ON 的數據庫中更新的性能可能只低幾個百分點。當在更新操作過程中更改更大量的數據時,版本更新的性能開銷可能變高。

  • 數據讀取器遍歷版本鏈接列表時會引起其他開銷。快照越舊,在快照隔離事務中訪問快照的進程就越慢。

  • 由于更新操作的必需的沖突檢測,某些使用快照隔離的更新事務可能必須回滾。在使用行版本控制的已提交讀隔離下運行的事務不會生成更新沖突。

使用行版本控制的事務還有其他限制。有關詳細信息,請參閱 使用基于行版本控制的隔離級別

從基于行版本控制的隔離級別獲益的系統

從基于行版本控制的隔離級別獲益的方案包括:

  • 并行運行只讀報告和即席查詢以及更新數據的應用程序的系統。

  • 從支持類似隔離級別的其他關系數據庫系統到 Microsoft SQL Server 數據庫引擎的應用程序遷移。

  • 獲取一致聚合(如 AVG、COUNT 和 SUM)或執行索引交叉和索引聯接將需要一個嚴格的隔離級別(如可重復讀或可序列化)的系統。

  • 具有由于讀/寫爭用導致的大量死鎖的系統。

如何選擇行版本的隔離級別


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 午夜啪视频| 国产黄色片网站 | 久久三区 | 激情视频免费在线观看 | 美女国产一区 | 不卡一区二区三区四区 | 中国美女撒尿txxxxx视频 | 精产国产伦理一二三区 | 成人 在线 | 日韩亚洲欧美视频 | 91视频观看 | 国产一区在线免费观看 | 久久美女 | 日本高清在线免费 | 亚洲激情成人 | 久久亚洲国产精品无码一区 | 日韩一级一欧美一级国产 | 日韩av在线中文字幕 | 黄视频网站大全 | 中文字幕 在线观看 | 国产福利在线视频 | 精品久久久久久久久久 | 天天骑天天干 | 国变精品美女久久久久av爽 | 91美女福利视频 | 天天操操| 亚洲线精品一区二区三区 | 成人看片黄a在线看 | 久久久www成人免费精品 | 4hu四虎永久免在线视看 | 亚洲视频在线看 | 精品九九| 亚洲午夜精品一区二区 | 日日摸夜夜添夜夜 | 欧美顶级毛片在线播放 | 国产av毛片 | 看免费大片 | 香港午夜三级a三级高清观看 | 欧美日韩高清不卡免费观看 | 武松2013| 黄视频网站大全 |