TAB
|
|
1963154039
|
IX
|
GRANT
|
52
|
RID
|
1:1357:2
|
72057594057326592
|
X
|
GRANT
|
52
|
PAG
|
1:1357
|
72057594057326592
|
IX
|
GRANT
|
52
|
Таблица 3
Snapshot-транзакция (spid 52) ожидает на блокировке (U
– WAIT), пока освободится нужная запись (RID 1:1357:2), заблокированная другой
транзакцией (spid 51) монопольно (X - GRANT).
Если сейчас вернуться в первое окно и откатить
блокирующую транзакцию, то snapshot совершенно спокойно выполнит свое
обновление и зафиксируется. Однако если блокирующую транзакцию зафиксировать, то, в отличие от блокировочного поведения, snapshot-транзакция будет отменена, и клиентское приложение получит сообщение об ошибке:
.Net
SqlClient Data Provider: Msg 3960, Level 16, State 1, Line 1
Cannot
use snapshot isolation to access table 'tst' in database 'AdventureWorks'.
Snapshot
transaction aborted due to update conflict. Retry transaction.
|
Более того, для отката snapshot-транзакции ей даже не
нужно ожидать снятия блокировки. Чтобы избежать несогласованного изменения, необходимо производить откат даже в том случае, если после старта
snapshot-транзакции одна из записей, необходимых для пишущего запроса, была
изменена другой транзакцией, успевшей зафиксироваться.
Если в одном из подключений начать
snapshot-транзакцию, сделав простую выборку:
Рекомендуем скачать другие рефераты по теме: контрольная работа по математике класс, контрольные работы по математике.
Предыдущая страница реферата |
3
4
5
6
7
8
9
10
11
12
13 |
Следующая страница реферата