Udostępnij za pośrednictwem


Podstawy indeksu

Indeks jest strukturę na dysku skojarzonych z tabela lub widoku, który przyspiesza pobierania wierszy z tabela lub widoku.Indeks zawiera klucze zbudowany z jedną lub więcej kolumn w tabela lub widoku.Klucze te są przechowywane w strukturze (B-drzewo), który umożliwia SQL Server Aby znaleźć wiersz lub wiersze skojarzonych z wartości klucz, szybciej i wydajniej.

Tabela lub widok może zawierać następujące typy indeksów:

  • Klastrowany

    • Stosowanie indeksów klastrowanych sortowanie i przechowywać wiersze danych w tabela lub widoku na podstawie ich wartości klucz.Są one zawarte w definicji indeksu kolumny.Może istnieć tylko jeden indeks klastrowany na tabela, ponieważ wierszy danych, same mogą być sortowane w kolejności tylko jeden.

    • Jedynym czas jest wierszy w tabeli są przechowywane w posortowane dane, gdy tabela zawiera indeks klastrowany.Tabela tabela ma indeks klastrowany, jest nazywany klastrowanego tabeli.Jeśli tabela ma indeks klastrowany, jego wierszy danych są przechowywane w strukturę Nieuporządkowana, nazywane sterty.

  • Nieklastrowany

    • Zbudowania indeksów mają strukturę oddzielnie od wierszy danych.Indeks nieklastrowany zawiera indeks nieklastrowany wartości klucz i każdy wpis wartości klucz ma wskaźnik do wiersza danych, który zawiera wartość klucz.

    • Wskaźnik w wierszu indeks nieklastrowany indeks, aby wiersz danych jest nazywany lokalizatora wiersza.Struktura lokalizatora wiersza zależy od tego, czy strony dane są przechowywane w sterty lub tabela klastrowanego.Sterty Lokalizator wiersza jest wskaźnik do wiersza.Dla tabela klastrowanego lokalizatora wiersza jest klucz indeks klastrowany.

    • Można dodać kolumnami, aby poziom liścia poziom indeks nieklastrowany do istniejących obejściowe indeks klucz limitów, 900 bajtów i 16 kolumn klucz i wykonywać kwerendy w pełni objęte, indeksowane,.Aby uzyskać więcej informacji, zobacz Indeks z uwzględnionych kolumn.

Aby uzyskać więcej informacji dotyczących architektury indeksu, zobacz Tabele i architektura struktur danych indeksu.

Indeksy klastrowane i nieklastrowany mogą być unikatowe.Oznacza to, że żadne dwa wiersze mogą mieć taką samą wartość klucz indeksu.W przeciwnym razie indeks nie jest unikatowa i wiele wierszy można udostępniać tę samą wartość klucz.Aby uzyskać więcej informacji, zobacz Unikatowy indeks projekt wytycznych.

Indeksy są przechowywane dla tabela lub widoku automatycznie, ilekroć zmodyfikowane dane tabela.

Indeksy i ograniczenia

Indeksy są tworzone automatycznie, gdy ograniczenia klucza podstawowego i unikatowe są zdefiniowane w kolumnach tabela.Na przykład po utworzeniu tabela i przy identyfikacji określonej kolumna klucza podstawowego do Aparat baz danych automatycznie tworzy ograniczenie na klucz podstawowy oraz indeks dla tej kolumna.Aby uzyskać więcej informacji, zobacz Tworzenie indeksów (aparat bazy danych).

Jak indeksy są używane przez optymalizator kwerend

Dobrze indeksów można zmniejszyć operacji We/Wy dysku i dlatego poprawia wydajność kwerendy zasobów systemowych.Indeksy mogą być pomocne dla różnych kwerendy zawierające SELECT, UPDATE, DELETE lub SCALIĆ sprawozdania.Należy rozważyć kwerendy SELECT Title, HireDate FROM HumanResources.Employee WHERE EmployeeID = 250 w AdventureWorks2008R2 bazy danych.Podczas wykonywania tej kwerendy optymalizator kwerendy ocenia każdej dostępnej metoda pobierania danych i wybiera najbardziej skuteczną metodą.Metoda może być skanowanie tabela lub może być skanowania jednego lub kilku indeksów, jeśli takie istnieją.

Podczas skanowania tabela optymalizator kwerendy odczytuje wszystkie wiersze w tabela i wyodrębnia wiersze, które spełniają kryteria kwerendy.Skanowanie tabela generuje wiele operacji do dysku i może być znacznych zasób.Jednak skanowanie tabela może być najbardziej efektywną metoda, jeśli na przykład, zestaw wyników kwerendy jest wysoki procent wierszy z tabela.

Gdy optymalizator kwerendy używa indeksu, wyszukuje indeks kolumny klucz, znajdzie lokalizacja przechowywania wierszy wymagane przez kwerendę i wyodrębnia zgodnych wierszy z tej lokalizacji.Przeszukiwanie indeksu jest zwykle dużo szybciej niż przeszukiwanie tabela, ponieważ w przeciwieństwie do tabela indeks zawiera często bardzo niewiele kolumn w poszczególnych wierszach, a wiersze są posortowane.

optymalizator kwerendy zazwyczaj wybiera najbardziej efektywne metoda podczas wykonywania kwerend.Jednak jeśli indeksy nie są dostępne, optymalizator kwerendy należy użyć skanowanie tabela.Your task is to design and create indexes that are best suited to your environment so that the query optimizer has a selection of efficient indexes from which to select.SQL Server provides the Database Engine Tuning Advisor to help with the analysis of your database environment and in the selection of appropriate indexes.

Zobacz także

Koncepcje

Inne zasoby