❗️Итак:
Причиной проблемы был установленный параметр 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