Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Типы блокировок

Размеры страниц и оптимальное расположение данных

В качестве SQL-сервера будем рассматривать MS SQL Server 6.5. В нем данные организованны страницами размером 2К. Поэтому все операции производятся над объемом данных не менее 2 К. SQL-сервер может обращаться к данным только постранично. В результате, когда обновляется одна строка таблицы, то блокировка накладывается на всю страницу. Если размер строки меньше 2К, то фактически заблокированными окажутся несколько строк.

Для того, чтобы подобная ситуация не сказывалась на производительности многопользовательской системы необходимо как можно меньший период времени удерживать блокировку или же организовать данные таким образом, чтобы на одной странице оказывалось как можно меньше строк.

Табличная блокировка возникает тогда, когда пользователь выполняет запрос на обновление всех полей таблицы. Другими словами, когда в запросе отсутствует условие WHERE. Кроме того, табличная блокировка может возникать в случае, когда число страниц блокируемых данных превышает так называемый порог распространения блокировки (look escalation threshold).

Расширенная блокировка возникает, когда SQL-сервер, выполняя пользовательский запрос, вынужден расширить базу на 8 новых страниц.

 

Блокировки делятся на страничные и табличные.

Страничные блокировки бывают следующих типов: разделяемые (SHARED), эксклюзивные (EXCLUSIVE) и обновления (UPDATE).

Разделяемая блокировка позволяет иметь другим процессам блокировки на одной и той же странице, а эксклюзивные – нет. Разделяемые блокировки обычно создаются при выборке данных. Но ни один процесс не сможет выполнить эксклюзивную блокировку, пока не закончено выполнение всех разделяемых.

Эксклюзивная блокировка создается процессом, выполняющим удаление записи на странице, а также добавляющим новую запись в конец страницы. Эти блокировки не позволяют какому-либо другому процессу получить доступ к странице.

Блокировка обновления – это нечто среднее между разделяемой и эксклюзивной блокировкой. Процессу разрешается иметь на странице разделяемую блокировку, но только до тех пор, пока на ней не происходит обновление данных. Блокировки обновления выполняются при построении на сервере курсора. При обновлении страниц ассоциированных с курсором такая блокировка становиться эксклюзивной.

Табличные блокировки подразделяются на разделяемые, эксклюзивные блокировки и блокировки намерения (INTENT). Разделяемые и эксклюзивные блокировки работают также как страничные. Блокировки намерения показывают, что в таблице имеется несколько страниц, которые сервер в ответ на запрос пользовательского процесса намеревается блокировать на уровне страниц.

Еще одна блокировка – блокировка вставки на уровне строки (INSERT ROW-LEVEL LOCKING). Эта блокировка предназначена разрешить конфликт между несколькими процессами, пытающимися одновременно добавить в конец страницы запись.

 

<== предыдущая лекция | следующая лекция ==>
Блокировки | Перемещение бизнес-логики и правил поддержки целостности данных с приложений на сервер БД
Поделиться с друзьями:


Дата добавления: 2014-01-13; Просмотров: 334; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.