Specjalne wytyczne dla indeksów podzielonym na partycje

Chociaż indeksy podzielonym na partycje można zaimplementować niezależnie od ich tabel bazowych, zazwyczaj warto zaprojektować tabela partycjonowana , a następnie utworzyć indeks dla tabeli.Gdy to zrobisz, SQL Server automatycznie partycje przy użyciu tego samego schematu partycjonowanie indeksu i kolumna partycjonowania jako tabela.W wyniku indeksu jest przydzielona zasadniczo taki sam sposób jak tabela.Dzięki temu indeksu wyrównane z tabela.

SQL Servernie wyrównać indeks z tabela, jeśli określony schemat inną partycję lub oddzielne grupy plików, na którym należy umieścić podczas tworzenia indeksu czas.

Wyrównywanie indeks o tabela partycjonowana jest szczególnie ważne, jeśli przewidujesz będzie rozwiń węzeł przez przejęcie dodatkowe partycje lub że będzie zaangażowany w częstych partycji przełączników.Aby uzyskać więcej informacji, zobacz Projektowanie partycje do zarządzania podzbiory danych.Gdy tabela i jej indeksy są wyrównanie, SQL Server partycje przełącznik szybko i efektywnie zachowując struktury partycji tabela i indeksy.

Ostrzeżenie

Indeks nie ma uczestniczyć w tym samym o nazwie funkcja partycji z jego tabela bazowa.Jednak funkcja partycji indeksu i tabela bazowa musi być zasadniczo takie same, w tym 1 argumenty funkcji partycji mają ten sam typ danych, 2) definiują tę samą liczbę partycji i 3) definiują wartości graniczne dla partycji.

Opcje strojenia zawiera kartę Klasyfikator strojenia bazy danych aparatu wyrównany partycjonowanie ustawienie, aby określić, że nowe indeksów zalecanych, być dostosowane do ich tabel bazowych.Wyrównany do utrzymania partycjonowanie ustawienia mogą być używane w tym samym celu i można również usunąć istniejące indeksy nonaligned.Aby uzyskać więcej informacji, zobacz Doradca dostrajania aparatu bazy danych(Karta Opcje strojenia).Ogólnie Doradca dostrajania aparatu bazy danych można zalecić indeksy dla wydajności i może to być wymieszać indeksów wyrównany i nonaligned.Aby uzyskać więcej informacji, zobacz Doradca dostrajania aparatu bazy danychOmówienie.

Projektowanie indeks partycjonowany niezależnie (unaligned) podstawy tabela może być przydatne w następujących przypadkach:

  • Tabela bazowa nie podzielony na partycje.

  • Indeks klucz jest unikatowy i nie zawiera kolumna partycjonowania tabela.

  • Tabela podstawowa uczestniczyć w collocated łączyćs z kilku tabel za pomocą różnych łączyć kolumny.

Ostrzeżenie

Aby umożliwić przełączanie partycji, wszystkie indeksy tabela muszą być dostosowane.

Podczas tworzenia indeks partycjonowany, należy wziąć pod uwagę informacje zawarte w poniższych sekcjach.

Partycjonowanie unikatowe indeksy

Podczas partycjonowania unikatowego indeksu (klastrowany lub nieklastrowany), kolumna partycjonowania musi być wybrana spośród używany klucz indeks unikatowy.

Ostrzeżenie

Umożliwia to ograniczenie SQL Server do zbadania pojedynczą partycję czy nie duplikat nową wartość klucz już istnieje w tabela.

Jeśli nie jest możliwe dla kolumna partycjonowania mają zostać uwzględnione w unikatowy klucz, należy użyć wyzwalacza LŚD zamiast tego, aby wymusić unikatowość.

Partycjonowanie indeksów klastrowanych

Podczas partycjonowania indeks klastrowany, musi zawierać klucz klastrowania kolumna partycjonowania.Podczas partycjonowania nieunikatowy indeks klastrowany oraz kolumna partycjonowania nie jest jawnie określony klucz klastrowania SQL Server dodaje kolumna partycjonowania domyślnie listę kluczy indeksu klastrowanego.Jeżeli indeks klastrowany jest unikatowa, należy jawnie określić że zawierać indeks klastrowany klucz kolumna partycjonowania.

Partycjonowanie zbudowania indeksów

Podczas partycjonowania unikatowy indeks nieklastrowany, musi zawierać indeks klucza kolumna partycjonowania.When partitioning a nonunique, nonclustered index, SQL Server adds the partitioning column by default as a nonkey (included) column of the index to make sure the index is aligned with the base table.SQL Server does not add the partitioning column to the index if it is already present in the index.

Ograniczenia ilości pamięci i indeksów podzielonym na partycje

Ograniczenia ilości pamięci może wpłynąć na wydajność lub zdolność SQL Server do tworzenia indeks partycjonowany.Jest to szczególnie przypadek, gdy indeks jest wyrównany z jego tabela bazowa lub nie jest wyrównany w indeksie klastrowanym, jeśli tabela ma już zastosowano indeks klastrowany.

Gdy SQL Server wykonuje sortowanie buduje indeksy podzielonym na partycje, najpierw tworzy jedną tabela sortowania dla każdej partycji.Buduje następnie Sortowanie tabel w odpowiednich grupa plików każdej partycji lub w tempdb, , jeśli określono opcję SORT_IN_TEMPDB indeksu.

Każda tabela sortowania wymaga minimalnej ilości pamięci do utworzenia.Podczas tworzenia indeks partycjonowany, który jest wyrównywany do jego tabela bazowa Sortowanie tabel są wbudowane w czas, stosując mniej pamięci.Jednakże, tworząc nonaligned indeks partycjonowany, sortowanie tabel są wbudowane w tym samym czas.

W wyniku musi być wystarczającej ilości pamięci do obsługi tych sortuje równoczesnych.Im większa liczba partycji, więcej pamięci wymagane.Minimalna wielkość dla każdej tabela sortowania dla każdej partycji jest 40 stron, z 8 kilobajtów strona.Na przykład, nonaligned indeks partycjonowany z partycjami 100 wymaga wystarczającej ilości pamięci, aby kolejno posortować 4000 (40 * 100) stron, w tym samym czas.Pamięć ta jest dostępna, operacji budowania kończy się pomyślnie, ale ucierpi wydajności.Jeśli ta pamięć nie jest dostępny, kompilacja operacja nie powiedzie się.Alternatywnie wyrównany indeksu podzielonym na partycje z partycjami 100 wymaga tylko wystarczającej ilości pamięci, aby posortować 40 stron, ponieważ sortowanie nie są wykonywane w tym samym czas.

Dla indeksów wyrównany i nonaligned wymóg pamięci może być większa Jeśli SQL Server jest stosowanie stopni równoległości prostych operacji budowania na komputerze wieloprocesorowym.Wynika to z tym większe stopnie równoległości prostych, tym większe wymagania pamięci.Na przykład jeśli SQL Server zestawy stopnie równoległości prostych 4, nonaligned indeks partycjonowany z partycjami 100 wymaga wystarczającej ilości pamięci dla czterech procesorów do sortowania 4000 stron w tym samym czas, lub strony 16,000.Jeśli indeks partycjonowany jest odpowiednio wyrównany, wymóg pamięci jest zmniejszona do cztery procesory sortowania stron 40 i 160 (4 * 40) stron.Opcja MAXDOP indeksu można ręcznie zmniejszony stopni równoległości prostych.Aby uzyskać więcej informacji, zobacz Konfigurowanie operacji równoległych indeksu.

Aby uzyskać więcej informacji dotyczących sposobu SQL Server wykonuje sortowanie operacji podczas tworzenia indeksów, zobacz tempdb i tworzenie indeksu.