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

+1

Мне иногда трудно читать BOL, и я - родной английский оратор ... Мой (немецкий) коллега попросил меня помочь на днях с чем-то в BOL, и мне пришлось подумать, прежде чем я смог ему помочь! – gbn

+0

Вы определенно правы, gbn! – George2

1

Вам также необходимо знать разницу между SNAPSHOT и READ COMMITTED SNAPSHOT - для последней вам необходимо изменить свою цитату из BOL следующим образом:

«Изменения данных, сделанные другими транзакциями после начала текущего ЗАЯВЛЕНИЕ (а не транзакция!) Не отображаются для операторов, выполняющихся в текущей транзакции».

Пример случая, когда это делает большую разницу: When Snapshot Isolation Helps and When It Hurts