SQL Server 2012 - почему изменение режима совместимости влияет на параллелизм в запросе? - PullRequest
0 голосов
/ 25 июня 2018

На прошлой неделе мы изменили режим совместимости со 100 (2008) на 110 (2012) на корпоративном SQL-сервере 2012.

С тех пор мы обнаружили, что производительность хранимой процедуры значительно снизилась с 18минут до 48 часов (до того как мы его убили).

Я изменил режим совместимости обратно на 100, и sproc снова запускается через 18 минут.Сравнивая планы до и после, версия 110 имеет параллелизм на каждом этапе пути, версия 100 не имеет вообще ничего.Другие хранимые процедуры (около 50) выполнялись с нормальной скоростью.

Для меня это совершенно новое основание, почему изменение режима совместимости со 100 на 110 привело бы к огромному увеличению параллелизма только для одной хранимой процедуры

1 Ответ

0 голосов
/ 10 июля 2018

Переход на более высокий уровень совместимости помогает движку sql выбирать планы в соответствии с последним улучшением. Таким образом, изменение уровня совместимости не является основной причиной медлительности вашего запроса. Вы должны использовать подсказку запроса OPTION (MAXDOP n) , чтобы найти RCA.

Проверьте план запроса до и после изменения уровня совместимости. После изменения уровня совместимости проверьте его план на MAXDOP 1 с помощью подсказки запроса, а затем проверьте план с MAXDOP n, где n> 1 (зависит от аппаратного обеспечения сервера).

И не забудьте проанализировать план запроса с измененным уровнем совместимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...