Укрупнение блокировок

Оценить
(0 голоса)

Если установлено много блокировок с одной и той же гранулярностью в процессе выполнения транзакции, Database Engine автоматически преобразует эти блокировки в блокировку таблицы. Этот процесс конвертирования множества блокировок уровней страницы, строки или индекса в блокировку уровня таблицы называется укрупнением блокировки. Начало укрупнения определяется системой динамически и не требует конфигурирования. (В настоящий момент значением границы укрупнения является 5000 блокировок.)

Основной проблемой, связанной с укрупнением блокировки, является то, что сервер базы данных принимает решение, когда следует укрупнять конкретную блокировку, а это решение может не быть оптимальным для приложений с различными потребностями. По этой причине SQL Server 2008 расширяет синтаксис оператора alter table, предоставляя вам возможность изменять механизм укрупнения блокировок. Этот оператор теперь поддерживает опцию table со следующим синтаксисом:

set  (lock_escalation = {table  | auto  |  disable})

Опция table является значением по умолчанию; она задает, что укрупнение блокировки будет устанавливаться на уровне грануляции таблицы. (Это поведение точно такое же, как и в SQL Server 2005.) Опция auto позволяет Database Engine выбрать гранулярность укрупнения блокировки, которая будет лучше подходить для таблицы схемы. Наконец, опция disable позволяет вам отменить в большинстве случаев укрупнение блокировки. (Это тот же самый случай, когда Database Engine должен выбрать блокировку таблицы для защиты целостности данных.)

В примере 13.3 запрещается укрупнение блокировки для таблицы employee.

Укрупнение блокировок

 


Влияние блокировок
Подсказки блокировки
Опция LOCK_TIMEOUT
Отображение информации блокировки
Взаимная блокировка

Добавить комментарий


Защитный код
Обновить

© 2018 www.serversql.ru. Все права защищены.