Всем привет!
Хотим поделиться хорошей новостью.
В нашем мониторинге PerfExpert, начиная с версии 4.0.8.81 можно собирать информацию по ожиданиям на параллелизме любого запроса SQL из трасс READS и DURATION, которые могут приводить к взаимоблокировкам.
Итак, если у вас на SQL Server уровень параллелизма отличен от 1, то у вас в любом случае встречаются ожидания на параллелизме, уровень которых и влияние на конкретную базу данных хорошо бы знать.
На рисунке ниже представлен скрин из трассы Duration, где у некоторых запросов в колонке CXPACKET отображается длительность ожидания запроса на параллелизме.
Это дает отличную возможность оценки влияния параллелизма на длительность тяжелых запросов.
Если сгруппировать все запросы в полученной трассе по их виду (по MD5), то можно увидеть те группы запросов, которые чаще других «страдают» от параллелизма – колонка «% Доля CXPACKET» отсортирована по убыванию:
В данном ранжированном списке есть все виды запросов, на которые стоит обратить внимание в части их замедления из-за настроек параллелизма.
Например, возьмем группу запросов MD5 13324255069401524566 (вторая строчка на предыдущем скрине). Всего таких запросов было 19. И почти для всех из них влияние параллелизма было крайне отрицательным – длительность ожиданий CXPACKET было сравнима с длительностью запроса – см. рисунок ниже, колонки Длительность и CXPACKET.
Таким образом, если в ходе анализа можно выявить группы тяжелых запросов, у которых суммарное время ожиданий CXPACKET весомое, сравнимое с длительностью запроса или даже больше, то для них параллелизм рекомендуется отключать.
Более подробно о влиянии параллелизма на работу системы 1С, его настройках и тонком тюнинге параметра MAXDOP для отдельных групп запросов смотрите в аналитической статье Записки оптимизатора 1С (часть 4). Параллелизм в 1С, настройки, ожидания CXPACKET.
Источник: habr.com