Когда вносить изменения в порог стоимости для параллелизма


10

При рассмотрении проблемы с производительностью я увидел приток CXPACKETS, который предположил, что мне, возможно, придется взглянуть на порог стоимости параллелизма и, возможно, MAXDOP.

Прежде чем вносить какие-либо радикальные изменения в MAXDOP, я следую советам многих других, в том числе и @mrdenny в ответе на CXPACKET. Ожидает изменения производительности для SQL Server 2008 и ответ @ aron-Bertrand из раздела Работа с CXPACKET ждет - установка порога стоимости для параллелизма . Я добавил к обслуживанию, чтобы обновлять статистику полностью на ночной основе. Это похоже на разумный ход.

Тем не менее, внесение изменений в пороговое значение стоимости все еще вызывает у меня беспокойство.

В какой момент следует изменить порог стоимости параллелизма? Есть ли у кого-нибудь пример, где (после изучения стоимости их запросов и рабочей нагрузки) они внесли изменения в эту стоимость?

Приносит свои извинения, если это то, на что был дан ответ в предыдущем вопросе.

Спасибо!

Ответы:


3

Использование MAXDOP = 1 может помочь, но это большое оружие. Может случиться так, что фактическая проблема заключается в полезности индексов. Возможно, новый или другой индекс решит проблему.

После комментариев г-на Денни и Аарона Бертрана вы обнаружили, что другие ожидания в этой связи, вероятно, были причиной ожидания CXPACKET?

Джонатан Кеяйас предложил вопрос, который может помочь вам оценить опыт параллелизма и принять более продуманное решение. Но вы также должны прочитать разговор между Джонатаном и Полом Уайтом.

https://www.sqlskills.com/blogs/jonathan/tuning-cost-threshold-for-parallelism-from-the-plan-cache/


1

Я бы посоветовал вам сначала заглянуть в настройки MAXDOP, так как настройка по умолчанию 0 (использовать все доступные потоки) может быть опасной, поскольку быстрый запрос, потребляющий все доступные потоки, приведет к истощению потока.

Обратитесь к моему ответу здесь, чтобы узнать, как рассчитать настройки MAXDOP для вашего экземпляра сервера.

Порог стоимости параллелизма относится к тому, какой должна быть минимальная стоимость запроса, прежде чем оптимизатор рассмотрит параллелизм.

Помните, что CXPACKET ждет - это просто симптомы из-за того, что что-то неправильно связано с устаревшей статистикой запроса или отсутствующим индексом, что приводит к неверному или другому плану.

Вы можете использовать sys.dm_exec_cached_plansи sys.dm_exec_query_planDMV для извлечения информации из кэша плана, как описано в разделе « Настройка порога стоимости для параллелизма» из кэша плана Джонатана и порога стоимости для параллелизма .

Я бы посоветовал оставить значение cost threshold for parallelismпо умолчанию, если у вас не исчерпаны запросы на настройку ресурсов, ведется обслуживание индексов и статистики, а также не проверяется, отсутствуют ли у вас пропущенные индексы, чтобы ваш запрос мог получить выгоду.

Примечание. Параметр Maxdop также можно применять на уровне запроса, используя OPTION (MAXDOP n)который будет переопределять параметр сервера.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.