Затем переключимся обратно в первое окно и завершим
выполнение первой транзакции:
UPDATE Tbl SET X = 6 WHERE X = 6
COMMIT TRAN
DBCC TRACEOFF(1200, 3604, -1)
|
После этого произойдет мертвая блокировка, о чем
сервер нам и сообщит.
Переключимся опять в окно с T2 (надеюсь, эти скачки не
слишком утомительны) и посмотрим, каков был порядок наложения блокировок в T2:
Process
51 acquiring IX lock on TAB: 6:2034106287 [] (class bit2000000 ref1) result:
OK
Process
51 acquiring IU lock on PAG: 6:1:17495 (class bit0 ref1) result: OK
Process
51 acquiring U lock on RID: 6:1:17495:0 (class bit0 ref1) result: OK
Process
51 releasing lock on RID: 6:1:17495:0
Process
51 acquiring U lock on RID: 6:1:17495:1 (class bit0 ref1) result: OK
Process
51 acquiring IX lock on PAG: 6:1:17495 (class bit2000000 ref1) result: OK
Process
51 acquiring X lock on RID: 6:1:17495:1 (class bit2000000 ref1) result: OK
Process
51 acquiring U lock on RID: 6:1:17495:2 (class bit0 ref1) result: OK
Process
51 releasing lock on RID: 6:1:17495:2
Process
51 acquiring U lock on RID: 6:1:17495:3 (class bit0 ref1) result: OKWAIT
Process
51 releasing lock on RID: 6:1:17495:3
Process
51 acquiring U lock on RID: 6:1:17495:4 (class bit0 ref1) result: OK
Process
51 releasing lock on RID: 6:1:17495:4
..........
|
Начало такое же, как и в T1, что, в общем, закономерно: IX – на таблицу, IU – на страницу. Затем U на первую запись, чтобы
затем прочитать и выяснить, подходит она нам или нет. Если не подходит, снимаем
блокировку и переходим к следующей записи.
Следующая запись подходит, и начинается тот же
процесс, что и в первом запросе T1. Конвертируем блокировку на страницу в IX, на запись – в эксклюзивную (X), и производим обновление. Эта блокировка, как и
в T1, не снимается. Опять же, поскольку сервер не знает, что он выбрал все
записи, удовлетворяющие условию, указанному в WHERE, то он продолжает
перебирать оставшиеся записи по очереди. Вот тут и начинаются отличия: Запись X
= 4 (RID 6:1:17495:3) удерживается эксклюзивной блокировкой (X), наложенной T1, ведь T1 мы не зафиксировали. И как только T2 доберется до этой записи, то она
будет вынуждена ждать на блокировке до тех пор, пока T1 не отменится или не
зафиксируется, так как U и X блокировки не совместимы, что мы и наблюдаем:
Рекомендуем скачать другие рефераты по теме: урок изложение, диплом разработка.
Предыдущая страница реферата |
7
8
9
10
11
12
13
14
15
16
17 |
Следующая страница реферата