Udostępnij za pośrednictwem


Stopień proste

SQL Server automatycznie wykrywa najlepsze stopień proste dla każdego wystąpienie wykonanie kwerendy równoległe lub operacji (DDL) języka definicja danych indeksu.Ma to na podstawie następujących kryteriów:

  1. Czy SQL Server jest uruchomiona na komputerze, na którym jest więcej niż jeden procesor lub PROCESORA, na przykład komputer multiprzetwarzania symetrycznego (SMP).

    Tylko komputery, które mają więcej niż jeden PROCESOR, można użyć kwerend równoległych.

  2. Czy dostępne są wystarczające wątków.

    Podczas każdej operacji kwerendy lub indeks wymaga pewnej liczby wątków w celu wykonać.Plan równoległe wykonywanie wymaga większej liczby wątków niż szeregowego planu, a liczba wątków wymagane powoduje zwiększenie stopnia proste.Gdy nie mogą być spełnione wymaganie wątek równoległych planu w określonym stopniu proste, Database Engine zmniejszenie stopnia proste automatycznie lub całkowicie opuszcza równoległych planu w kontekście określonego obciążenia. Następnie wykonuje planu szeregowe (jeden wątek).

  3. Typ kwerendy lub indeksu Operacja wykonana.

    Indeks operacje, które utworzyć odbudować indeks lub indeks klastrowany i kwerendy używające cykle PROCESORA w dużym stopniu są najlepsze kandydatów na plan równoległych.Na przykład sprzężenia dużych tabel, duże agregacji i sortowanie dużych zestawów są dobrym kandydatów.Znajdowanie dodatkowych prostych kwerend, często można znaleźć w aplikacjach przetwarzania transakcji, wymagane do wykonać kwerendy równolegle koordynacji przewyższają potencjalnych podniesienie wydajności.Aby rozróżnić kwerendy, które korzystają z proste i tych, które nie korzystają Database Engine porównuje szacowany koszt wykonania operacji kwerendy lub indeksu z Koszt próg proste wartość.Chociaż nie jest to zalecane, użytkownicy mogą zmieniać wartości domyślnej za pomocą 5 sp_configure.

  4. Czy istnieje wystarczająca liczba wierszy do procesu.

    Jeśli optymalizator kwerendy ustali, że liczba wierszy jest za mała, nie wprowadza wymiany operatorów do rozpowszechniania wierszy.W związku z tym operatorów wykonywane są pojedynczo.Wykonywanie operatorów w planie szeregowego pozwala uniknąć scenariuszy, podczas uruchamiania, dystrybucji i koordynację koszty przekraczają zyski, osiągnięte przez operator równoległe wykonywanie.

  5. Czy dostępne są statystyki bieżącego dystrybucji.

    Jeśli na najwyższym poziomie proste nie jest możliwe, stopnie niższe są uważane za zanim zostanie zaniechana równoległych planu.

    Na przykład po utworzeniu indeksu klastrowanego w widoku statystyk dystrybucji nie może być oceniane, ponieważ indeks klastrowany jeszcze nie istnieje.W takim przypadek Database Engine nie może dostarczyć najwyższy stopień proste dla operacji indeksu. Jednak kilka operatorów, takich jak sortowanie i skanowania, można nadal korzystać z wykonywanie równoległe.

Uwaga

Indeks równoległych operacji są dostępne tylko w SQL Server Wersje Enterprise Developer i oceny.

W czasie wykonywania Database Engine Określa, czy bieżący system obciążenia pracą i konfiguracja informacje opisany wcześniej Umożliwia wykonywanie równoległe. Jeśli będzie to wykonywanie równoległe uzasadnione Database Engine Określa optymalną liczbę wątków i rozprzestrzenia się wykonanie planu równolegle przez te wątków. Po uruchomieniu kwerendy lub indeksu operacji wykonywanie na wiele wątków do wykonywanie równoległe taką samą liczbę wątków jest używany aż do zakończenia operacji.The Database Engine re-examines the optimal number of wątek decisions every czas an execution plan is retrieved from the pamięć podręczna procedury. Na przykład wykonanie jednej kwerendy mogą spowodować korzystanie z planu szeregowego, równoległego planu przy użyciu trzech wątków może spowodować późniejszego uruchomienia tej samej kwerendy i trzeciego wykonanie może być przyczyną równoległych planu przy użyciu czterech wątków.

W planie wykonanie kwerendy równolegle wstawiania, aktualizacji i usuwania operatory są wykonywane pojedynczo.Jednak klauzula WHERE, aktualizacji lub instrukcja DELETE lub SELECT części instrukcja SQL INSERT mogą być wykonywane równolegle.Zmiany danych rzeczywistych pojedynczo są następnie stosowane do bazy danych.

Kursory statyczne i sterowanych przez zestaw kluczy może być kolumnie planów wykonywanie równoległe.Jednak zachowanie dynamiczne kursory może być udostępniane tylko przez wykonanie szeregowego.optymalizator kwerendy zawsze generuje plan szeregowego wykonanie kwerendy, która jest częścią kursor dynamiczny.

Zastępowanie stopnie proste

Można użyć maksymalny stopień proste opcji konfiguracja serwera do ograniczania liczby procesorów używanych w realizacji planu równoległych.The max degree of parallelism option can be overridden for individual query and index operation statements by specifying the MAXDOP query hint or MAXDOP index option.MAXDOP zapewnia większą kontrolę nad wykonania poszczególnych kwerend i operacji indeksu.Na przykład można użyć opcji MAXDOP formantem, a rozszerzenie lub zmniejszenie liczby procesorów byłaby przeznaczona wyłącznie do operacji online indeksu.W ten sposób można bilansować zasoby używane przez operację indeksu z tymi jednocześnie działających użytkowników.