Както Кабоинг спомена, MAXDOP(n)
всъщност контролира броя на процесорните ядра, които се използват в процесора на заявки.
При напълно неактивна система SQL Server ще се опита да изтегли таблиците в паметта възможно най-бързо и да се присъедини между тях в паметта. Възможно е във вашия случай да е най-добре да направите това с един процесор. Това може да има същия ефект като използването на OPTION (FORCE ORDER)
което принуждава оптимизатора на заявки да използва реда на съединенията, който сте посочили. В някои случаи съм виждал OPTION (FORCE PLAN)
намаляване на заявката от 26 секунди на 1 секунда от времето за изпълнение.
Books Online продължава да казва, че възможните стойности за MAXDOP
са:
0 - Използва действителния брой налични CPU в зависимост от текущото работно натоварване на системата. Това е стойността по подразбиране и препоръчителната настройка.
1 - Потиска генерирането на паралелни планове. Операцията ще бъде изпълнена последователно.
2-64 - Ограничава броя на процесорите до определената стойност. Може да се използват по-малко процесори в зависимост от текущото работно натоварване. Ако е посочена стойност, по-голяма от броя на наличните CPU, се използва действителният брой налични CPU.
Не съм сигурен какво е най-доброто използване на MAXDOP
е, но бих предположил и бих казал, че ако имате таблица с 8 дяла върху нея, бихте искали да посочите MAXDOP(8)
поради I/O ограничения, но може да греша.
Ето няколко бързи връзки, които намерих за MAXDOP
:
Книги онлайн:Степен на паралелизъм
Общи указания, които да използвате за конфигуриране на опцията MAXDOP