Как правильно настроить ms sql 2022 /2025
1.
Shade_echo
01.04.26 11:25
Сейчас в теме
Коллеги, добрый день. Поделитесь пожалуйста опытом настроек ms sql серверов последних (2022, 2025).
Конкретно интересуют пункты: как правильно настроить Max Degree of Parallelism, Cost Threshold for Parallelism. 1С рекомендует ставить Max Degree of Parallelism 1, но запись от 2016 года. В интернетах находил кучу противоречивой информации, где-то пишут 1 ставить, где-то 8, где-то вовсе 0. Cost Threshold for Parallelism так же где-то пишут оставлять по умолчанию, где-то выставлять 30 и больше.
Нужно ли чистить процедурный кэш DBCC FREEPROCCACHE после обслуживания индексов и обновления статистики? Так же на нескольких ресурсах (включая рекомендацию 1с от 2016 года и на одном форуме относительно свежая статья от 2025 г.) видел рекомендации по очистке кэша, но при этом на некоторых форумах пишут, что данная рекомендация не актуальна начиная с 2019 ms sql.
У себя пробовал настраивать так: maxdop 8, cost threshold 5 - были выявлены проблемы с CXPACKET и CXCONSUMER, снизил до 2 (постепенно снижал) - проблемы с CXPACKET и CXCONSUMER пропали, но появились новые, связанные с дисками. Как выловить ту самую золотую середину? Только методом экспериментов? Или все же есть какая-то свежая документация?
tempdb, логи и базы у меня разнесены по разным nvme дискам, диски KINGSTON SFYRD2000G
Конкретно интересуют пункты: как правильно настроить Max Degree of Parallelism, Cost Threshold for Parallelism. 1С рекомендует ставить Max Degree of Parallelism 1, но запись от 2016 года. В интернетах находил кучу противоречивой информации, где-то пишут 1 ставить, где-то 8, где-то вовсе 0. Cost Threshold for Parallelism так же где-то пишут оставлять по умолчанию, где-то выставлять 30 и больше.
Нужно ли чистить процедурный кэш DBCC FREEPROCCACHE после обслуживания индексов и обновления статистики? Так же на нескольких ресурсах (включая рекомендацию 1с от 2016 года и на одном форуме относительно свежая статья от 2025 г.) видел рекомендации по очистке кэша, но при этом на некоторых форумах пишут, что данная рекомендация не актуальна начиная с 2019 ms sql.
У себя пробовал настраивать так: maxdop 8, cost threshold 5 - были выявлены проблемы с CXPACKET и CXCONSUMER, снизил до 2 (постепенно снижал) - проблемы с CXPACKET и CXCONSUMER пропали, но появились новые, связанные с дисками. Как выловить ту самую золотую середину? Только методом экспериментов? Или все же есть какая-то свежая документация?
tempdb, логи и базы у меня разнесены по разным nvme дискам, диски KINGSTON SFYRD2000G
Найденные решения
4.
Shade_echo
03.07.26 09:30
Сейчас в теме
(3)
после первого входа после очистки процедурного кэша все работает медленнее, из-за создания новых планов запросов, ушел от этой затеи, регулярно обновляю статистику и обслуживание индексов провожу.
По maxdop чисто экспериментальным путем через сбор статистики по ожиданиям вышел на настройки maxdop 4 и threshold 70.
Для 1С в 99% вообще не влияет, поскольку менеджер временных таблиц генерит рандомные имена временных таблиц, то практически все запросы перекомпилируются всегда, а для "не изменяемых" запросов сервер "умеет" строить несколько планов. Поэтому, можете очищать или нет - не влияет.
после первого входа после очистки процедурного кэша все работает медленнее, из-за создания новых планов запросов, ушел от этой затеи, регулярно обновляю статистику и обслуживание индексов провожу.
По maxdop чисто экспериментальным путем через сбор статистики по ожиданиям вышел на настройки maxdop 4 и threshold 70.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Если на сервере СУБД живут БД только 1С, то оставьте как пишет 1С.
Если там есть другие БД, то оставьте 0, и прописывайте Max Degree of Parallelism = 1 для каждой 1С БД .
В принципе начиная с MSSQL 2019 проблем с Max Degree of Parallelism = 0 проблем не наблюдал.
Cost Threshold for Parallelism - эта настройка управляет поведением оптимизатора, при превышении порога (в 5 попугаев), оптимизатор попытается построить параллельный план (не факт, что такой можно построить).
НО если выставлен Max Degree of Parallelism = 1, то оптимизатор не будет в принципе строить параллельный план, поскольку запрос будет выполняться всё равно на одном ядре.
Почитайте цикл статей
(1)
Для 1С в 99% вообще не влияет, поскольку менеджер временных таблиц генерит рандомные имена временных таблиц, то практически все запросы перекомпилируются всегда, а для "не изменяемых" запросов сервер "умеет" строить несколько планов. Поэтому, можете очищать или нет - не влияет.
1С рекомендует ставить Max Degree of Parallelism 1,
Если на сервере СУБД живут БД только 1С, то оставьте как пишет 1С.
Если там есть другие БД, то оставьте 0, и прописывайте Max Degree of Parallelism = 1 для каждой 1С БД .
В принципе начиная с MSSQL 2019 проблем с Max Degree of Parallelism = 0 проблем не наблюдал.
Cost Threshold for Parallelism - эта настройка управляет поведением оптимизатора, при превышении порога (в 5 попугаев), оптимизатор попытается построить параллельный план (не факт, что такой можно построить).
НО если выставлен Max Degree of Parallelism = 1, то оптимизатор не будет в принципе строить параллельный план, поскольку запрос будет выполняться всё равно на одном ядре.
Почитайте цикл статей
(1)
Нужно ли чистить процедурный кэш DBCC FREEPROCCACHE
Для 1С в 99% вообще не влияет, поскольку менеджер временных таблиц генерит рандомные имена временных таблиц, то практически все запросы перекомпилируются всегда, а для "не изменяемых" запросов сервер "умеет" строить несколько планов. Поэтому, можете очищать или нет - не влияет.
4.
Shade_echo
03.07.26 09:30
Сейчас в теме
(3)
после первого входа после очистки процедурного кэша все работает медленнее, из-за создания новых планов запросов, ушел от этой затеи, регулярно обновляю статистику и обслуживание индексов провожу.
По maxdop чисто экспериментальным путем через сбор статистики по ожиданиям вышел на настройки maxdop 4 и threshold 70.
Для 1С в 99% вообще не влияет, поскольку менеджер временных таблиц генерит рандомные имена временных таблиц, то практически все запросы перекомпилируются всегда, а для "не изменяемых" запросов сервер "умеет" строить несколько планов. Поэтому, можете очищать или нет - не влияет.
после первого входа после очистки процедурного кэша все работает медленнее, из-за создания новых планов запросов, ушел от этой затеи, регулярно обновляю статистику и обслуживание индексов провожу.
По maxdop чисто экспериментальным путем через сбор статистики по ожиданиям вышел на настройки maxdop 4 и threshold 70.
(3)
Тут, кстати, можно включить optimize for ad hoc workloads и сэкономить немного буферной памяти за счёт этих одноразовых планов
Для 1С в 99% вообще не влияет, поскольку менеджер временных таблиц генерит рандомные имена временных таблиц, то практически все запросы перекомпилируются всегда, а для "не изменяемых" запросов сервер "умеет" строить несколько планов. Поэтому, можете очищать или нет - не влияет.
Тут, кстати, можно включить optimize for ad hoc workloads и сэкономить немного буферной памяти за счёт этих одноразовых планов
7.
Shade_echo
03.07.26 10:18
Сейчас в теме
(6) превышали значения ожиданий, огромные цифры были, очень выделялось на фоне остальных ожиданий. И жалобы были от пользователей, что отчеты формируются очень долго
2.
user-z99999
78
01.04.26 13:07
Сейчас в теме
Приказ 18 января 2023 г. № 21
К 2030 году 80% организаций ключевых отраслей должны использовать отечественное программное обеспечение.
Переходите на Postgres Pro Enterprise для 1С (платно)
или PostgreSQL (бесплатно)
К 2030 году 80% организаций ключевых отраслей должны использовать отечественное программное обеспечение.
Переходите на Postgres Pro Enterprise для 1С (платно)
или PostgreSQL (бесплатно)
5.
Shade_echo
03.07.26 09:36
Сейчас в теме
(2)
Переходите на Postgres Pro Enterprise для 1С (платно)
или PostgreSQL (бесплатно)
вам платят за рекламу слона? А как быть с проверками бэкапов? Да и в целом с бэкапами? Да и в целом ms sql больше инструментов имеет из коробки. Когда слона допилят до уровня ms sql по функционалу, тогда можно и перейти. А пока что на проде тестировать сырые поделки - сомнительно. Тут на 2025 скуль пока что не хочется переходить, а вы про слона....
или PostgreSQL (бесплатно)
8.
Vladimir-R
172
03.07.26 11:31
Сейчас в теме
(5) т.е. вы сейчас можете официально приобрести MS SQL?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот