Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jaki jest cel używania OPTION(MAXDOP 1) w SQL Server?

Jak wspomniał Kaboing, MAXDOP(n) faktycznie kontroluje liczbę rdzeni procesora używanych w procesorze zapytań.

W całkowicie bezczynnym systemie SQL Server będzie próbował jak najszybciej ściągnąć tabele do pamięci i połączyć je w pamięci. Możliwe, że w twoim przypadku najlepiej zrobić to za pomocą jednego procesora. Może to mieć taki sam efekt, jak użycie OPTION (FORCE ORDER) co zmusza optymalizator zapytań do użycia określonej kolejności złączeń. W niektórych przypadkach widziałem OPTION (FORCE PLAN) skróć zapytanie z 26 sekund do 1 sekundy czasu wykonania.

Books Online mówi dalej, że możliwe wartości dla MAXDOP są:

0 — używa rzeczywistej liczby dostępnych procesorów w zależności od bieżącego obciążenia systemu. To jest wartość domyślna i zalecane ustawienie.

1 — Pomija równoległe generowanie planu. Operacja zostanie wykonana seryjnie.

2-64 — Ogranicza liczbę procesorów do określonej wartości. W zależności od bieżącego obciążenia może być używanych mniej procesorów. Jeśli podana jest wartość większa niż liczba dostępnych procesorów, używana jest rzeczywista liczba dostępnych procesorów.

Nie jestem pewien, jakie jest najlepsze zastosowanie MAXDOP jest jednak zgadywałbym i powiedziałbym, że jeśli masz tabelę z 8 partycjami na niej, chciałbyś określić MAXDOP(8) ze względu na ograniczenia we/wy, ale mogę się mylić.

Oto kilka szybkich linków, które znalazłem na temat MAXDOP :

Książki online:stopień równoległości

Ogólne wskazówki dotyczące konfiguracji opcji MAXDOP



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wystąpił błąd związany z siecią lub specyficzny dla instancji podczas nawiązywania połączenia z SQL Server

  2. Jaki jest punkt początkowego katalogu w parametrach połączenia programu SQL Server?

  3. INT vs Unique-Identifier dla pola ID w bazie danych

  4. MONTH() Przykłady w SQL Server (T-SQL)

  5. Jaki jest najlepszy sposób przechowywania współrzędnych (długość/szerokość geograficzna, z Google Maps) w SQL Server?