Блокировки в MS SQL Server 2000
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: реферат на тему мыло, контрольная работа 7
| Добавил(а) на сайт: Васёна.
Предыдущая страница реферата | 26 27 28 29 30 31 32 33 34 35 36 | Следующая страница реферата
Тип |
RangeS_S |
RangeS_U |
RangeX_X |
RangeI_N |
RangeS_S |
+ |
+ |
- |
- |
RangeS_U |
+ |
- |
- |
- |
RangeX_X |
- |
- |
- |
+ |
RangeI_N |
- |
- |
+ |
- |
ПРИМЕЧАНИЕ Блокировка RangeI_N совместима с любым простым типом блокировки (даже с монопольной блокировкой) исключая Sch-M. |
Давайте рассмотрим несколько примеров, использующих блокировки диапазона. Для этого потребуется новая таблица, создать которую можно следующим образом:
create table test_key(i int) insert into test_key values(3) insert into test_key values(5) insert into test_key values(7) insert into test_key values(9) create nonclustered index _i_test_key on test_key(i) |
Чтобы не напрягаться и не писать каждый раз begin tran, все соединения переключим в режим неявной транзакции, при котором SQL Server не выполняет автоматического фиксирования транзакции после успешного выполнения каждой команды. Новая транзакция начинается сразу же после ручного фиксирования текущей. Режимы переключаются с помощью следующей команды:
SET IMPLICIT_TRANSACTIONS ON |
Текущее состояние этой переменной можно определить следующим способом:
select case when (@@options & 2) = 2 then 'IMPLICIT' else 'NOT IMPLICIT' end |
В дальнейшем все примеры, если явно не оговорено другое, выполняются в режиме неявной транзакции.
Для начала посмотрим, что такое разделяемая блокировка диапазона:
set implicit_transactions on select * from test_key with (serializable) |
Если сейчас заглянуть в табличку syslockinfo или вызвать хранимую процедуру sp_lock, можно увидеть 5 блокировок типа RangeS_S. Значение в строке Resource однозначно идентифицирует запись индекса, однако для одной строки значение равно (ffffffffffff). Это говорит о том, что весь диапазон чисел от -INF до +INF (где INF - бесконечности) заблокирован. Если вы попытаетесь вставить в таблицу test_key значение, например, 68, у вас ничего не выйдет. Рассмотрим результаты вызова процедуры sp_lock (приведены сокращенно в таблице 9):
spid |
dbid |
ObjId |
IndId |
Type |
Resource |
Mode Рекомендуем скачать другие рефераты по теме: решебник по физике, украинские рефераты. Категории:Предыдущая страница реферата | 26 27 28 29 30 31 32 33 34 35 36 | Следующая страница реферата Поделитесь этой записью или добавьте в закладки |