Udostępnij za pośrednictwem


Tworzenie indeksów (aparat bazy danych)

W tym temacie opisano zadania tworzenia indeksu głównych i zawiera wytyczne wykonania i wydajności należy rozważyć przed utworzeniem indeksu.

Zadania tworzenia indeksu

Nasze zalecana strategia tworzenia indeksów składają się następujące zadania:

  1. Projekt indeksu.

    Projekt indeksu jest zadanie krytyczne.Projekt indeksu zawiera określenie kolumny, które mają być używane, wybierając typ indeksu (na przykład klastrowany lub nieklastrowany), wybierając opcje właściwe indeksu i określanie grupy plików lub schemat partycji położenie.Aby uzyskać więcej informacji, zobacz Projektowanie indeksów.

  2. Określić najlepszą metoda tworzenia.Indeksy są tworzone w następujący sposób:

    • Definiując klucz podstawowy lub unikatowe ograniczenie kolumna przy użyciu CREATE TABLE lub ALTER TABLE

      Aparat baz danych programu SQL Server Automatycznie tworzy indeks unikatowy w celu wymuszenia unikatowości wymagania klucz podstawowy lub ograniczenie UNIQUE.Domyślnie tworzony jest unikatowy indeks klastrowany Wymuszaj ograniczenie klucza podstawowego, chyba że indeks klastrowany jest już istnieje w tabela lub określić unikatowy indeks nieklastrowany.Domyślnie tworzony jest unikatowy indeks nieklastrowany Wymuszaj ograniczenie typu UNIQUE, chyba że wyraźnie określono unikatowego indeks klastrowany i indeks klastrowany w tabela nie istnieje.

      Lokalizacja indeksu indeks i opcje, grupa plików lub schemat partycji, można również określić.

      Indeks utworzony jako część ograniczenia na klucz podstawowy lub unikatowe, jest automatycznie nadawana taką samą nazwę jak nazwa ograniczenia.Aby uzyskać więcej informacji, zobacz Ograniczenie na klucz podstawowy i Ograniczenie typu UNIQUE.

    • Tworząc indeks niezależnych ograniczenia za pomocą instrukcja CREATE INDEX lub Nowy indeks okno dialogowe w SQL Server Management Studio Object Explorer

      Należy określić nazwę indeksu, tabelai do których stosuje się indeksu kolumny.Lokalizacja indeksu indeks i opcje, grupa plików lub schemat partycji, można również określić.Domyślnie jeśli nie określono opcji klastrowany lub unikatowe nieklastrowanym, nieunikatowy indeks zostanie utworzony.Aby utworzyć indeks filtrowane, użyj opcjonalnej klauzula WHERE.Aby uzyskać więcej informacji, zobacz Filtrowane wskazówek indeksu.

  3. Utwórz indeks.

    Czy na pustą tabela lub jeden zawierający dane zostanie utworzony indeks jest ważnym czynnikiem, który należy wziąć pod uwagę.Tworzenie indeksu na pustej tabela ma nie wpływ na wydajność w czas jest tworzony indeks; Jednakże wpływa na wydajność podczas dodawania danych do tabela.

    Tworzenie indeksów w dużych tabelach powinny być planowane dokładnie tak, aby nie był utrudniony wydajność bazy danych.Preferowanym sposobem tworzenia indeksów na dużych tabel jest zacząć indeks klastrowany i budowanie inne niżindeks klastrowanyes.Należy rozważyć ustawienie opcji ONLINE ON podczas tworzenia indeksów dla istniejących tabel.Wartość w długoterminowej blokady tabela nie są przeznaczone Włączanie kwerendy lub aktualizuje tabela źródłowa , aby kontynuować.Aby uzyskać więcej informacji, zobacz Wykonywanie operacji indeks w trybie Online.

Uwagi dotyczące implementacji

W poniższej tabela przedstawiono maksymalnej wartości, które mają zastosowanie do klastrowanego, nieklastrowanym, przestrzennej, przefiltrowane, i indeksów XML.O ile nie określono, ograniczenia dotyczą wszystkich typów indeksu.

Indeks maksymalne limity

Wartość

Dodatkowe informacje

Stosowanie indeksów klastrowanych tabela

1

 

Zbudowania indeksów w tabela

999

Zawiera utworzone przez klucza podstawowego lub ograniczeń UNIQUE i filtrowane indeksy, ale nie XML indeksy ponownego zbudowania indeksów.

XML indeksów w tabela

249

Zawiera podstawowe i pomocnicze indeksy XML na xml Typ danych kolumny.

Indeksy na kolumnach typu danych XML

Przestrzennej indeksów w tabela

249

Praca z indeksy przestrzenne (aparat bazy danych)

Liczbę kolumn klucz indeksu

16*

Indeks klastrowany jest ograniczony do 15 kolumn, jeśli tabela zawiera również indeksu głównego XML lub żadnych indeksów przestrzennych.

Maksymalny rozmiar indeksu kluczy.

Rozmiar rekordu klucz indeksu

900 bajtów *

Nie dotyczą indeksy XML lub indeksy przestrzenne.

Dla tabela obsługuje indeksy przestrzenne rozmiar maksymalny indeks klucz rekordu jest 895 bajtów.

Maksymalny rozmiar indeksu kluczy.

* Można uniknąć indeksu kolumna klucz i rozmiar rekordu ograniczenia zbudowania indeksów nie klastrowanych przez włącznie z kolumnami w indeksie.Aby uzyskać więcej informacji, zobacz Indeks z uwzględnionych kolumn.

Typy danych

Na ogół dowolnej kolumna w tabela lub widoku mogą być indeksowane.W poniższej tabela przedstawiono typy danych, które ograniczono uczestnictwa indeksu.

Typ danych

Udział indeksu

Dodatkowe informacje

zdefiniowany przez użytkownika typ aparatu CLR

Mogą być indeksowane, jeśli obsługuje typ binarny zamawiania.

Praca z CLR typów zdefiniowanych przez użytkownika

Typy danych dużego obiektu (LOB): image, ntext, text, varchar(max), nvarchar(max), varbinary(max), and xml

Nie może być indeks klucz kolumna.Jednakże XML Kolumna może być kolumny klucz podstawowego lub pomocniczego indeksu XML na tabela.

Może pełnić rolę (dołączone) kolumnami indeks nieklastrowany z wyjątkiem image, ntext, i text.

Mogą uczestniczyć Jeśli część kolumna obliczana wyrażenie.

Indeks z uwzględnionych kolumn

Indeksy na kolumnach typu danych XML

Kolumny obliczane

Mogą być indeksowane.Obejmuje to obliczanej kolumna zdefiniowane jako wywołania metoda CLR typ zdefiniowany przez użytkownika kolumna, tak długo, jak metoda są oznaczone deterministyczny.

kolumna obliczanas pochodnymi typów dane LOB mogą być indeksowane, jako klucz lub nonkey kolumna, tak długo, jak kolumna obliczana typ danych jest dozwolone jako kolumna kluczy indeksu lub nonkey.

Tworzenie indeksów kolumny obliczanej

Varchar kolumny przesunięta poza wiersz

Klucz indeks klastrowany indeksu nie może zawierać varchar kolumny zawierające dane istniejące w ROW_OVERFLOW_DATA jednostka alokacji.Jeżeli indeks klastrowany zostanie utworzony na varchar kolumna oraz istniejących danych jest jednostka alokacji, kolejnych insert lub update actions kolumna, która będzie IN_ROW_DATA wypychanie off wiersza danych spowoduje niepowodzenie.

Organizacji indeksu i tabeli

Przepełnienie wiersz danych powyżej 8 KB

geometry

Mogą być indeksowane z wielu indeksów przestrzennych.

Typy danych przestrzennych

Uwagi dodatkowe

Dodatkowe informacje dotyczące tworzenia indeksu są następujące:

  • Można utworzyć indeks, jeśli mają STEROWAĆ lub zmienić uprawnienia w tabela.

  • Po utworzeniu indeks jest automatycznie włączone i dostępne do użytku.Aby usunąć dostęp do indeksu, wyłączając go.Aby uzyskać więcej informacji, zobacz Wyłączanie indeksów.

Wymagania dotyczące miejsca na dysku

Ilość miejsca na dysku, wymagane będzie przechowywany indeks zależy od następujących czynników:

Zagadnienia wydajności

Czas fizycznie utworzyć indeks jest dużej mierze zależne podsystemu dyskowego.Niezwykle ważne są następujące:

  • model odzyskiwanie Bazy danych.Bulk-logged model odzyskiwanie zapewnia większą wydajność i ograniczonej przestrzeni dziennik zużycia podczas operacji tworzenia indeksu niż pełnego odzyskiwanie.Jednak odzyskiwanie bulk-logged zmniejsza elastyczność dla punktu-w-czas odzyskiwania.Aby uzyskać więcej informacji, zobacz Wybieranie modelu odzyskiwania dla operacji indeksu.

  • RAID Poziom (redundant array of independent disks) używane do przechowywania bazy danych i transakcji dziennika pliki.Ogólnie poziomy RAID, które używają rozkładanie będą miały lepszą przepustowością We/Wy.

  • Liczba dysków w tablicy dysków, jeśli użyto RAID.Więcej dysków w tablicy danych zwiększa szybkość przesyłania proporcjonalnie.

  • Gdy uruchamia pośrednie sortowania danych jest przechowywany.Za pomocą opcji SORT_IN_TEMPDB można zmniejszyć czas wymagany do tworzenia indeksu po tempdb na inny zestaw dysków niż baza danych użytkownika.Aby uzyskać więcej informacji, zobacz tempdb i tworzenie indeksu.

  • Tworzenie indeksu w trybie offline lub online.

    Po utworzeniu indeks offline (ustawienie domyślne), wyłącznej blokady są aktywne tabela źródłowa aż do tworzenia indeksu transakcji zostało ukończone.Tabela jest niedostępna dla użytkowników podczas tworzenia indeksu.

    XML i przestrzennej indeksów można określić indeks można utworzyć online.Opcja online jest ustawiona na ON, długoterminowej blokady tabela nie są aktywne, włączając kwerendy lub aktualizuje tabela źródłowa kontynuować podczas tworzenia indeksu.Chociaż zaleca operacji online indeksu należy ocenić środowiska i szczególne wymagania.Może być lepiej uruchomić operacje indeks w trybie offline.W ten sposób użytkownicy ograniczono dostęp danych podczas operacji, ale operacja zakończy się szybciej i wykorzystuje mniej zasobów.Aby uzyskać więcej informacji, zobacz Wykonywanie operacji indeks w trybie Online.

Aby utworzyć klucz podstawowy lub unikatowe ograniczenie podczas tworzenia tabela

Aby utworzyć klucz podstawowy lub unikatowe ograniczenie w istniejącej tabela

Aby utworzyć indeks