Зачем отключить авторасчет статистики SQL

Статистика — Ключ к лучшей оптимизации и, следовательно, лучшей производительности.

Всем кто занимался вопросами производительности известно о влиянии статистики SQL на производительность. Все DBA и администраторы единогласно призывают обновлять статистику, в том числе включая автообновление статистики. Например статья на хабре почему для SQL Server важна статистика. Рекомендация включить авторасчет статистики является стандартом. Давайте разберемся когда от стандарта нужно отойти.

Когда авторасчет статистики будет полезно выключить

Автообновление статистики
Отключить авторасчет статистики SQL

Рекомендация от 1с по настройке SQL включить автообновление статистики

its.1c.ru

Несмотря на рекомендации от 1с highload-системы живут своей жизнью, расследование инцидентов показало что бывают моменты когда кто-нибудь запускает долгий запрос (более 30 секунд) в этот момент SQL понимает что план запроса не оптимален и начинает обновлять статистику, а дальше происходит магия. Статистика обновляется и новая статистика ждет пока запрос выполнится, а в это время проблемы и тормоза у всех остальных пользователей. После выполнения запроса статистика помещается и проблема уходит.

Что бы избежать такую ситуацию необходимо выключить авторасчет статистики в английской версии это auto update statistics.

Как обновлять статистику

Поскольку статистики пересчитывать нужно в любом случае настраиваем на SQL план обслуживания с обновлением статистики или делаем это руками.

Пересчет статистики

EXEC sp_updatestats

Обновление статистик по всем таблицам базы данных

exec sp_msforeachtable N'UPDATE STATISTICS ? WITH FULLSCAN'

Дополнительная информация по обновлению статистики на сайте 1с итс.

Как ещё можно ускорить 1с:

  1. Перенести журнал регистрации на другой диск
  2. Переключить журнал регистрации в старый формат

Опубликовано

в

от

Комментарии

2 комментария на ««Зачем отключить авторасчет статистики SQL»»

  1. Аватар пользователя вавада казино зеркало
    вавада казино зеркало

    Добрый день, выполнили Обновление статистики, Реиндексацию, Тестирование и исправление. После этого заметили, что bak базы средствами SQL-сервер уменьшился примерно на 10 Гб (с 32 Гб до 22 Гб). Вопрос №1: рекомендуете ли после перечисленных выше операций выполнить операцию Сжать базу средствами SQL-сервер? И если да, то нужно ли ставить галочку на опции Реорганизовать файлы при освобождении неиспользуемого места Вопрос №2: Сколько оставлять места под журнал логов для базы? (задается в SQL-сервере)

    1. Аватар пользователя adm_CrazyElephant_x
      adm_CrazyElephant_x

      1. Сжать базу средствами SQL-сервер — повышает нагрузку на процессор, снижает нагрузку на дисковую подсистему, нужно смотреть по железу что выбрать.
      2. По поводу лога, рекомендую поставить рост по 512мб и бекапы с такой периодичностью, что бы фул бекап сжимал журнал и он не успевал занять все место.

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