日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Sql Server 2005中的快照隔离

發布時間:2023/12/31 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Sql Server 2005中的快照隔离 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Sql Server2005提供了兩種基于快照的隔離類型,他們都是利用行版本控制來維護快照的:
1、已提交讀快照隔離(RCSI),通過修改數據庫的一個選項來啟用
alter database AdventureWorks set READ_COMMITTED_SNAPSHOT on

2、快照隔離(SI),必須在兩個地方開啟
A、啟用數據庫的ALLOW_ISOLATION_SNAPSHOT選項
alter database AdventureWorks set ALLOW_SNAPSHOT_ISOLATION on
B、通過set transaction isolation level 命令為每個想要使用SI的連接設置隔離級別

set transaction isolation level snapshot


觀察數據庫的狀態

目錄視圖sys.databases包含了幾個報告數據庫快照隔離狀態的字段.
snapshot_isolation_state字段的可能值是0到4,表示四種可能的SI狀態,而snapshot_isolation_state_desc字段對每種狀態作了清晰的說明:
off:數據庫關閉了快照隔離狀態
in_transition_to_on:數據庫正處于開啟SI的中間狀態
on:SI被開啟
in_transition_to_off:數據庫正處于關閉SI的中間狀態而不能啟動新的快照事務

數據庫選項read_committed_snapshot可能的狀態值
0:關閉
1:開啟

并發模型的選擇

悲觀并發控制時Sql Server2005中的默認設置,也是所有早期版本的唯一選擇。事務的行為是由加鎖來保證的,而付出的代價是產生較多的阻塞。在訪問同一數據資源時,讀者和寫者之間會互相阻塞。由于Sql Server最初是為使用悲觀并發而設計的,用戶應該在證明樂觀并發確實對應用程序更有用的前提下才考慮使用

在大多數情況下,基于下列原因RCSI比SI更受歡迎:
1、RCSI比SI占用更少的tempdb空間
2、RCSI支持分布式事務,而SI不支持
3、RCSI不會產生更新沖突
4、RCSI無需再應用程序端作任何修改。唯一要更改的只是一個數據庫選項

可以考慮在下列情況中使用SI:
1、不太可能由于更新沖突而導致事務必須回滾得情況
2、需要基于運行時間長、能保證時間點一致性的多語句來生成報表的情況


樂觀并發控制的優缺點:
優點:
1、select 操作無需獲取共享鎖,因此讀者和寫者之間不會互相阻塞
2、所有的select會得到一個始終如一的數據快照
3、與悲觀并發相比,鎖的需求總量大大減少了,因而將節約更多系統開銷
4、Sql Server會執行較少的鎖升級
5、發生死鎖的可能性較小

缺點:
1、當需要掃描一個很長的版本鏈時,select語句的性能會有所下降
2、行版本控制需要tempdb數據庫中的額外數據
3、只要數據庫啟用了基于快照隔離級別的某一種時,更新和刪除操作都必須產生行版本
4、需要為每個受到影響的行增加大小為14個字節的行版本控制信息
5、更新操作的性能可能會因為維護行版本而變差
6、使用SI模式的更新操作可能會因為沖突檢測而被回滾
7、必須小心地控制tempdb的空間

轉載于:https://www.cnblogs.com/Spring/archive/2008/08/21/1272685.html

總結

以上是生活随笔為你收集整理的Sql Server 2005中的快照隔离的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。