Udostępnij za pośrednictwem


Równoległych operacji indeksu

Plany kwerend, przeznaczony dla operacji indeksu, tworzyć oraz odbudować indeks lub usunąć indeks klastrowany umożliwia równoległe, wielowątkowych operacji na komputerach, na których zainstalowano wiele mikroprocesory.

Uwaga

Indeks równoległych operacji są dostępne tylko w SQL Server 2008 Flaga.

SQL Server używa wykonuje te same algorytmy, aby określić stopień proste (całkowita liczba wątków oddzielne uruchamianie) dla operacji indeks tak, jak inne kwerendy.Maksymalny stopień proste dla operacji indeksu podlega maksymalny stopień proste opcji konfiguracja serwera.Można zastąpić maksymalny stopień proste wartość indeksu poszczególnych operacji przez ustawienie opcji indeksowania MAXDOP w instrukcji CREATE INDEX, ALTER indeks, DROP indeks i instrukcji ALTER tabela.

Gdy Database Engine kompilacje plan wykonania indeksu, liczby równoległych operacji jest równa najmniejszej wartości, spośród następujących czynności:

  • Numer mikroprocesory lub procesory w komputerze.

  • Podany maksymalny stopień proste opcji konfiguracja serwera.

  • Liczba procesorów nie jest jeszcze za pośrednictwem próg pracy wykonanej do SQL Server wątki.

Na przykład na komputerze, na którym jest osiem procesorów, ale gdzie maksymalny stopień proste jest zestaw do 6, nie więcej niż sześć równoległych wątków są generowane dla operacji indeksu.Jeżeli pięć procesorów w komputerze przekracza próg SQL Server pracy podczas tworzenia planu wykonania indeksu, który plan wykonania określa tylko trzy równoległych wątków.

Główne fazy pracy równoległej indeksu są następujące:

  • Wątek koordynujący szybko i losowo skanowanie tabela, aby oszacować rozkład kluczy indeksu.Wątek koordynujący ustanawia granice klucz, który zostanie utworzony, liczba kluczy zakresów równym stopniu operacji równoległych, gdzie każdy zakres klucz szacuje obejmujące podobne numery wierszy.Na przykład jeśli istnieją cztery milionów wierszy w tabela, a stopień proste jest 4, koordynujący wątek określa wartości klucz, ograniczających czterech zestawów wierszy z 1 miliona wierszy w każdym zestawie.Jeśli brakuje klucz zakresów nie można ustalić, aby używać wszystkich procesorów, stopień proste zostanie zmniejszona odpowiednio.

  • Wątek koordynujący wywołuje liczbę wątków w równym stopniu operacji równoległych i czeka na tych wątków do zakończenia pracy.Każdy wątek skanowanie tabela bazowa, przy użyciu filtru, który kopiuje tylko wiersze z wartości klucz do zakres przypisanego do wątku.Każdy wątek tworzy strukturę indeksu dla wierszy w swoim zakresie klucz.przypadek braku indeks partycjonowany każdy wątek tworzy określoną liczbę partycji.Partycje nie są współużytkowane przez wątki.Aby uzyskać więcej informacji na temat sposobu konstruowania indeksu zobacz tempdb and Index Creation.

  • Po wykonaniu wszystkich równoległych wątków, wątek koordynujący łączy podjednostek indeksu w pojedynczy indeks.Ta faza ma zastosowanie wyłącznie do operacji indeksu w trybie offline.

Pojedyncze instrukcje CREATE tabela lub ALTER tabela może zawierać wiele ograniczeń, które wymagają utworzenia indeksu.Tych wiele operacji tworzenia indeksu są wykonywane w serii, chociaż podczas każdej operacji tworzenia indeksu poszczególnych równoległych operacji na komputerze, na którym jest wiele procesorów.