Настройка регламентных операций не доступна в Express версии СУБД.
По опыту, самыми распространенными причинами неоптимальной работы SQL-сервера являются:
1. Неактуальная статистика о распределении значений и индексов в таблице базы данных.
2. Устаревание процедурного КЭШа планов запросов.
3. Высокая фрагментация индексов таблиц.
4. Периодическая необходимость в перестроении всех индексов таблиц.
Теперь по порядку.
A. Обновление статистики
MS SQL, как и другие современные СУБД, имеют механизм оптимизации запросов к базе данных на основе собранной статистики распределения значений в таблицах и индексах. Оптимизатор SQL, анализируя собранную статистику, выбирает наиболее эффективный план запроса, исключая нерациональные выборки данных.
Достаточно интенсивная работа с базой данных снижает актуальность собранной статистики что не позволяет оптимизатору создавать оптимальные запросы к БД. Поэтому необходимо проводить обновление статистик. Делается это с помощью следующей команды:
Exec sp_msforeachtable N'UPDATE STATISTICS ? WITH FULLSCAN'
Наибольшее влияние статистики распределения данных на производительность СУБД можно увидеть с применением вложенных запросов. Если платформа 1С: Предприятие 8.x сформирует запрос к SQL-базе многоуровневой вложенности, плюс к этому еще и соединением двух вложенных запросов, то можно утверждать, что скорость его работы напрямую зависит от актуального состояния собранной статистики.Для поддержки статистик в актуальном состоянии рекомендуется создать регламентное задание, которое будет производить обновление статистик в указанное время. Поскольку данный процесс не блокирует таблицы БД, то его можно запускать практически в любое время. Если возникнет необходимость обновления статистик несколько раз за сутки в связи с режимом работы базы, то рекомендуется разбить этот процесс на несколько частей. Анализ планов запросов позволит определить таблицы, которые нуждаются в частом обновлении статистик, чем остальные. Далее разделить процесс на две задачи: несколько раз в сутки обновлять статистику распределения значений для наиболее используемых таблиц, и раз в сутки для всех остальных. Чтобы создать регламентное задание на обновление статистики нужно перейти в «управление» -> «Планы обслуживания» -> «Создать план обслуживания…»
Дата: 2019-05-28, просмотров: 250.