2009-07-12 117 views
3

我從下面的鏈接學習SQL Server 2008的快照隔離級別。我的困惑是,SQL Server快照隔離級別問題

http://msdn.microsoft.com/en-us/library/ms173763.aspx

  1. 應該提及的「當前交易開始後由其它事務中做出的數據修改不會在當前事務中執行的語句是可見的。」 - 似乎其他事務提交的數據對當前快照隔離級別事務不可見;

  2. 它提到「在SNAPSHOT隔離級別下運行的事務可以查看該事務所做的更改」。 - 似乎其他事務提交的數據對當前快照隔離級別事務可見。

似乎1和2有衝突嗎?任何意見?

由於事先 喬治

回答

8

2號的意思是「我可以看到我自己的變化,我看不到其他變化」

所以,如果我開始一個事務,我做出改變,我可以看他們。其他會話/連接的其他交易在我的TXN無法看到我的更改後啓動

+0

你是正確的,我做了一個錯誤的讀數。 :-) – George2 2009-07-12 08:54:38

1

您還需要知道SNAPSHOT和READ COMMITTED SNAPSHOT之間的區別 - 對於後者,您需要修改BOL中的報價,如下所示:

「在當前事務中執行的語句不會顯示當前 STATEMENT(不是事務!)開始後由其他事務所做的數據修改。」

時會產生很大的差異的情況下的一個例子:When Snapshot Isolation Helps and When It Hurts