Special Guidelines for Partitioned Indexes

Mimo że indeksy podzielonym na partycje można zaimplementować niezależnie od ich tabel bazowych, zazwyczaj warto projektowania tabela partycjonowana, a następnie utworzyć indeks dla tabeli.Gdy to zrobisz, SQL Server automatycznie partycjonowanie indeksu, korzystając z tym samym schemat partycjonowanie i kolumna partycjonowania w tabela. W rezultacie indeks jest już podzielony na partycje w istocie taki sam sposób, jak w tabela.Dzięki temu indeksu wyrównane z tabela.

SQL Server nie wyrównanie indeksu z tabela po określeniu schematu inną partycję lub osobne grupa plików, na którym należy umieścić w czasie jego tworzenia indeksu.

Wyrównywanie indeks z tabelą podzielonym na partycje jest szczególnie ważne, jeśli przewiduje się go spowoduje rozwinięcie wykonując na dodatkowe partycje, lub że będzie być zaangażowany w partycji częste przełączników.Aby uzyskać więcej informacji zobaczDesigning Partitions to Manage Subsets of Data.Kiedy tabela i jej indeksy są wyrównanie SQL Server można przełączać partycje szybko i efektywnie przy zachowaniu struktury partycji tabela i jej indeksów.

Uwaga

Indeks ma uczestniczyć w tej samej funkcja partycji o nazwie wyrównania w jej tabela bazowa.1) 2) 3) Jednak funkcja partycji indeksu i tabela bazowa musi być zasadniczo taki sam, w tym argumenty funkcji partycji mają ten sam typ danych, definiują ten sam numer partycji i definiują takich samych wartościach granicę dla partycji.

The Tuning Options tab of the Doradca dostrajania aparatu bazy danych provides an Aligned partycjonowanie setting to specify that new recommended indexes be aligned with their base tables.The Keep aligned partycjonowanie setting can be used for the same purpose and can also be used to drop existing nonaligned indexes.Aby uzyskać więcej informacji zobaczDatabase Engine Tuning Advisor (Tuning Options Tab).Ogólnie rzecz biorąc klasyfikatora strojenia aparat bazy danych może służyć do zaleca indeksy dla wydajności i może to być kombinację wyrównany i nonaligned indeksów.Aby uzyskać więcej informacji zobaczDatabase Engine Tuning Advisor Overview.

Projektowanie indeks partycjonowany, niezależnie od siebie (niewyrównany) z tabela bazowa może być przydatne w następujących przypadkach:

  • W tabela bazowa nie jest podzielony na partycje.

  • Indeks klucz jest unikatowy i nie zawiera on partycjonowanie kolumnie tabela.

  • Chcesz uczestniczyć w collocated łączyć z większej liczby tabel za pomocą łączyć różnych kolumn tabela bazowa.

Uwaga

Aby umożliwić przełączanie partycji, muszą być dostosowane wszystkich indeksów w tabela.

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

Partycjonowanie indeksy unikatowe

Gdy partycjonowanie indeks unikatowy (klastrowany lub nieklastrowany), partycjonowanie na partycje kolumna musi być wybrana spośród określonych klucz indeks unikatowy.

Uwaga

Umożliwia to ograniczenie SQL Server Aby uzyskać więcej informacji dotyczących tylko jedną partycję czy nie duplikat nową wartość klucz już tabela.

Jeśli nie ma możliwości partycjonowanie kolumny mają zostać uwzględnione w unikatowy klucz, należy użyć wyzwalacz DML zamiast tego, aby wymusić unikatowość.

Partycjonowanie indeksów klastrowanych

Gdy partycjonowanie indeks klastrowany klastrowanie klucz musi zawierać kolumna partycjonowania.Kiedy partycjonowanie nieunikatowy klastrowanych indeks i kolumna partycjonowania nie jest jawnie określony w kluczu klastrowania SQL Server dodaje kolumna partycjonowania domyślnie do listy kluczy indeks klastrowany. Jeżeli indeks klastrowany jest unikatowa, należy jawnie określić, aby zawierały klucza indeksu klastrowanego partycjonowanie kolumny.

Partycjonowanie ponownego zbudowania indeksów nie klastrowanych

Podczas partycjonowania unikatowego indeks nieklastrowany, klucz indeks musi zawierać 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 pamięci i indeksy podzielonym na partycje

Ograniczenia ilości pamięci może mieć wpływ na wydajność lub zdolność SQL Server Aby utworzyć indeks partycjonowany. przypadek szczególnie przypadek, gdy indeks nie jest wyrównana z podstawowej tabeli lub nie jest odpowiednio wyrównany, w indeksie klastrowanym, gdy tabela zawiera już indeks klastrowany do niego zastosowany.

Kiedy SQL Server Wykonuje sortowanie do budowania indeksów podzielonym na partycje, najpierw buduje jednej tabela sortowania dla każdej partycji. Następnie buduje tabel sortowania w odpowiednich grupa plików poszczególnych partycji lub w Tempdb, Jeśli SORT_IN_TEMPDB indeksowanie opcji została określona.

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

W rezultacie 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.Minimalny rozmiar dla każdej tabela sortowania dla każdej partycji jest 40 stron z 8 kilobajtów strona.Na przykład nonaligned indeks partycjonowany 100 partycji musi być wystarczającej ilości pamięci do posortowania pojedynczo 4000 (40 * 100) stron, w tym samym czas.Pamięć ta jest dostępna, kompilacja operacja powiedzie się, ale wydajność może ponieść.Jeśli ta pamięć nie jest dostępny, operacja kompilacji nie powiedzie się.Można także wyrównany indeks partycjonowany o 100 partycje wymaga tylko wystarczającej ilości pamięci do posortowania 40 stron, ponieważ sortowanie nie są wykonywane w tym samym czasie.

Wyrównane i nonaligned indeksy, wymagania dotyczące pamięci może być większa Jeśli SQL Server stosuje stopni proste operacji budowania na komputerze wieloprocesorowym. Dzieje się tak, tym większe stopnie proste, tym większe wymagania dotyczące pamięci.Na przykład jeśli SQL Server zestawy stopni proste do 4, indeks partycjonowany nonaligned 100 partycji wymaga wystarczającej ilości pamięci do czterech procesorów do sortowania 4000 stron w tym samym czasie lub 16,000 stron. Jeśli indeks partycjonowany jest odpowiednio wyrównany, wymagania dotyczące pamięci, jest zredukowane do czterech procesorów sortowania stron 40 i 160 (4 * 40) stron.Za pomocą opcji indeksowania MAXDOP ręczne zmniejszenie stopnia proste.Aby uzyskać więcej informacji zobaczKonfigurowanie równoległa operacje indeksu.

Aby uzyskać więcej informacji na temat sposobu SQL Server Wykonuje sortowanie operacji podczas tworzenia indeksów, zobacz tempdb and Index Creation.