Sql-Server

啟用 read_committed_snapshot 時的 Sql server 快照隔離成本

  • December 10, 2015

當 SQL Server 的讀取送出快照打開時(因此需要一定數量的行版本控制),是否僅因啟用快照隔離而導致任何額外成本?

快照隔離通過使行稍大一些並且需要一些 tempdb 來儲存以前的版本直到送出,從而導致一些成本,即使對於非快照事務也是如此。據我了解,這個基礎設施對於讀取送出快照也是必要的。因此,我可以假設啟用快照隔離對於非快照事務沒有額外的成本,只要讀取送出的快照已經打開嗎?

基本機制幾乎相同。但是,在快照隔離中,版本可能會保留更長的時間,從而對整體資源造成更大的壓力。

在 SQL Server 中啟用快照隔離模式會增加 tempDB 上的 i/o 負載。如果您在 Amazon EC2 上,您可能會考慮將 tempDB 文件放在最快的驅動器上,無論是本地易失性 SSD 還是具有高 iops 的 EBS。

(順便說一句,快照隔離模式使 SQL Server 的行為更像 Oracle 的預設值 - 這減少了行級爭用。)

引用自:https://dba.stackexchange.com/questions/37263