Как правильно настроить 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
Найденные решения
4. Shade_echo 03.07.26 09:30 Сейчас в теме
(3)
Для 1С в 99% вообще не влияет, поскольку менеджер временных таблиц генерит рандомные имена временных таблиц, то практически все запросы перекомпилируются всегда, а для "не изменяемых" запросов сервер "умеет" строить несколько планов. Поэтому, можете очищать или нет - не влияет.

после первого входа после очистки процедурного кэша все работает медленнее, из-за создания новых планов запросов, ушел от этой затеи, регулярно обновляю статистику и обслуживание индексов провожу.
По maxdop чисто экспериментальным путем через сбор статистики по ожиданиям вышел на настройки maxdop 4 и threshold 70.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. paulwist 01.04.26 16:51 Сейчас в теме
(1)
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С

(1)
Нужно ли чистить процедурный кэш DBCC FREEPROCCACHE


Для 1С в 99% вообще не влияет, поскольку менеджер временных таблиц генерит рандомные имена временных таблиц, то практически все запросы перекомпилируются всегда, а для "не изменяемых" запросов сервер "умеет" строить несколько планов. Поэтому, можете очищать или нет - не влияет.
Shade_echo; +1 Ответить
4. Shade_echo 03.07.26 09:30 Сейчас в теме
(3)
Для 1С в 99% вообще не влияет, поскольку менеджер временных таблиц генерит рандомные имена временных таблиц, то практически все запросы перекомпилируются всегда, а для "не изменяемых" запросов сервер "умеет" строить несколько планов. Поэтому, можете очищать или нет - не влияет.

после первого входа после очистки процедурного кэша все работает медленнее, из-за создания новых планов запросов, ушел от этой затеи, регулярно обновляю статистику и обслуживание индексов провожу.
По maxdop чисто экспериментальным путем через сбор статистики по ожиданиям вышел на настройки maxdop 4 и threshold 70.
11. redfred 03.07.26 15:46 Сейчас в теме
(3)
Для 1С в 99% вообще не влияет, поскольку менеджер временных таблиц генерит рандомные имена временных таблиц, то практически все запросы перекомпилируются всегда, а для "не изменяемых" запросов сервер "умеет" строить несколько планов. Поэтому, можете очищать или нет - не влияет.


Тут, кстати, можно включить optimize for ad hoc workloads и сэкономить немного буферной памяти за счёт этих одноразовых планов
6. redfred 03.07.26 10:13 Сейчас в теме
(1)
были выявлены проблемы с CXPACKET и CXCONSUMER


А что за проблемы были?
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 (бесплатно)
5. Shade_echo 03.07.26 09:36 Сейчас в теме
(2)
Переходите на Postgres Pro Enterprise для 1С (платно)
или PostgreSQL (бесплатно)
вам платят за рекламу слона? А как быть с проверками бэкапов? Да и в целом с бэкапами? Да и в целом ms sql больше инструментов имеет из коробки. Когда слона допилят до уровня ms sql по функционалу, тогда можно и перейти. А пока что на проде тестировать сырые поделки - сомнительно. Тут на 2025 скуль пока что не хочется переходить, а вы про слона....
sys1c; BetterPlayer; YA_514896950; +3 Ответить
8. Vladimir-R 172 03.07.26 11:31 Сейчас в теме
(5) т.е. вы сейчас можете официально приобрести MS SQL?
9. redfred 03.07.26 11:53 Сейчас в теме
(8) Есть много официально приобретённых ранее инсталляций
Shade_echo; YA_514896950; +2 Ответить
10. YA_514896950 38 03.07.26 12:54 Сейчас в теме
(8) это трофей, скачал - пользуйся)
Для отправки сообщения требуется регистрация/авторизация

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот