Параллельность обновления статистики - PullRequest
0 голосов
/ 15 мая 2019

Статистика таблиц, оптимизированных для памяти, создается во время создания таблицы и никогда не обновляется. Это означает, что вся статистика создается на пустой таблице. Чтобы обновить статистику индекса для таблиц, оптимизированных для памяти, мне нужно вручную запустить оператор UPDATE STATISTICS.

Мои таблицы, оптимизированные для памяти, созданы с долговечностью только для схемы. Данные в таблицах изменчивы. Он используется хранимыми процедурами, и для управления ростом данных у меня есть задание, которое удаляет записи из таблицы, когда данные больше не нужны. Таблицы используются в нескольких хранимых процедурах, которые выполняются не очень часто. Поскольку большую часть времени таблица пуста, обновление статистики по запланированному заданию не принесет пользы. Вместо этого у меня есть статистика обновления внутри процедур.

Время от времени я получаю сообщение об ошибке: Не удается найти объект "Table_Name" ... , где имя таблицы - это таблица, оптимизированная для моей памяти. Таблица существует, и единственное, о чем я могу подумать, это оператор UPDATE STATISTICS.

Есть ли проблема параллелизма с оператором UPDATE STATISTICS? Что произойдет, если вызов процедуры выполняет инструкцию UPDATE STATISTICS, когда другой экземпляр процедуры пытается использовать или обновить статистику для той же таблицы? Будет ли это ошибка?

...