Рефераты | Рефераты по информатике, программированию | Блокировки в MS SQL Server 2000 | страница реферата 40 | Большая Энциклопедия Рефератов от А до Я
Большая Энциклопедия Рефератов от А до Я
  • Рефераты, курсовые, шпаргалки, сочинения, изложения
  • Дипломы, диссертации, решебники, рассказы, тезисы
  • Конспекты, отчеты, доклады, контрольные работы

  • Теперь в первой сессии выполним обновление записи:

    --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 |




    Поделитесь этой записью или добавьте в закладки

       




    Категории:



    Разделы сайта




    •