Динамические блокировки

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

Диаграмма стоимости и гранулярности

В приложении MicrosoftSQL Server Database Engine используется динамический выбор уровня блокировки, что обеспечивает оптимальное использование ресурсов. При выполнении запроса компонент Database Engine автоматически определяет оптимальный уровень блокировки на основании характеристик схемы и запроса. Например, при просмотре индекса для уменьшения загрузки системы оптимизатор может задать блокировки на уровне страниц.

Динамический выбор уровня блокировки имеет следующие преимущества.

  • Упрощенное администрирование базы данных. Администратор базы данных не должен задавать условия укрупнения блокировки.

  • Повышение производительности. Компонент Database Engine сводит к минимуму загрузку системы, назначая блокировки индивидуально для каждой задачи.

  • Разработчики приложений могут полностью сосредоточиться на процессе разработки. Компонент Database Engine автоматически регулирует блокировки.

В SQL Server 2008 поведение укрупнения блокировки изменилось с введением параметра LOCK_ESCALATION. Дополнительные сведения см. в параметре LOCK_ESCALATION инструкции ALTER TABLE.