Вчера получил несколько десятков вопросов с непониманием - что всё таки явилось причино... — 25 июня 2026 г. в 02:37:01.312
Вчера получил несколько десятков вопросов с непониманием - что всё таки явилось причиной блокировок, описанных в https://max.ru/explorer1c/AZ74BvIyYE8 Итак: ❗Причиной проблемы был установленный параметр ALLOW_ROW_LOCKS = OFF для всех индексов всех таблиц базы. Причём тут документация? На ИТС написано: До дефрагментации индекса необходимо включить страничные блокировки. Пример команды: ALTER INDEX index_name ON table_name SET (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON); Выполнить дефрагментацию. Обратно выключить страничные блокировки. Пример команды: ALTER INDEX index_name ON table_name SET (ALLOW_PAGE_LOCKS = OFF, ALLOW_ROW_LOCKS = ON); Т.е. речь всегда идёт только о страничных блокировках, это параметр ALLOW_PAGE_LOCKS. Но в примерах команд есть ещё и параметр ALLOW_ROW_LOCKS , который вообще-то и в первом скрипте (Перед дефрагментацией индексов) и во втором (после дефрагментации) установлен в значение ON. Но поскольку текстом написано включить и после дефрагментации выключить, то читается это как выключить всё что было включено. Что и явилось причиной неверного плана обслуживания, где после дефрагментации был выключен параметр ALLOW_ROW_LOCKS=OFF. Проверить наличие такой настройки в индексах базы можно запросом: select object_id, name, allow_row_locks from sys.indexes where allow_row_locks = 0

