Теперь в первой сессии выполним обновление записи:
--SET
IMPLICIT_TRANSACTIONS on
update
test set n = 'other' where i = 2
--rollback
|
А во второй – запрос:
--SET IMPLICIT_TRANSACTIONS on
--select * from test with (readpast)
select * from test with (xlock) where i
= 1
--rollback
|
Чтобы увидеть блокировки второй сессии, я поставил
хинт xlock. Запрос не заблокируется, давайте посмотрим содержимое syslockinfo
(таблица 16).
spid
|
dbid
|
ObjId
|
IndId
|
Type
|
Resource
|
Mode
|
Status
|
55
|
8
|
1993058136
|
0
|
RID
|
1:31:00
|
X
|
GRANT
|
55
|
8
|
1993058136
|
0
|
PAG
|
1:31
|
IX
|
GRANT
|
54
|
8
|
1993058136
|
0
|
PAG
|
1:31
|
IX
|
GRANT
|
55
|
8
|
1993058136
|
3
|
PAG
|
1:29
|
IX
|
GRANT
|
55
|
8
|
1993058136
|
0
|
TAB
|
|
IX
|
GRANT
|
54
|
8
|
1993058136
|
0
|
TAB
|
|
IX
|
GRANT
|
54
|
8
|
1993058136
|
0
|
RID
|
1:31:01
|
X
|
GRANT
|
55
|
8
|
1993058136
|
3
|
KEY
|
(21001d31a802)
|
X
|
GRANT
|
Как видим, первая сессия наложила монопольную
блокировку на первую строку 1:31:01, а вторая – на нулевую 1:31:00. Кроме
этого, вторая сессия наложила монопольную блокировку на ключ (последняя строка)
и монопольную блокировку намерений на страницу, где располагается индекс (1:29).
Чтобы действительно убедиться, что индекс создан
именно на этой странице, нужно выполнить очередную недокументированную команду:
extentinfo [('database_name' [, 'table_name' [, 'index_name' ]])]
|
dbid – идентификатор базы данных; dbname – название
базы данных;
table_id – идентификатор таблицы; table_name –
название таблицы;
index_id – идентификатор индекса; index_name –
название индекса.
ПРИМЕЧАНИЕ
Для получения полного списка команд
DBCC (Database Console Commands) можно воспользоваться такой командой:
dbcc traceon (2520)
dbcc help('?')
dbcc traceoff (2520)
Чтобы получить синтаксис конкретной
команды, например, page, выполните такую последовательность:
dbcc traceon (2520)
dbcc help('page')
dbcc traceoff (2520)
|
В нашем случае следующий набор команд покажет все
страницы таблицы test:
dbcc traceon (3604)
dbcc extentinfo(8,'test')
dbcc traceoff (3604)
|
Рекомендуем скачать другие рефераты по теме: решебник по физике, украинские рефераты.
Предыдущая страница реферата |
32
33
34
35
36
37
38
39
40
41
42 |
Следующая страница реферата