Udostępnij przez


Index Basics

Indeks stanowi strukturę z dysku skojarzonych z tabela lub widoku, który przyspiesza proces pobierania wierszy z tabela lub widoku.Indeks zawiera klucze utworzonego na podstawie jednej lub kilku 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 szybko i efektywnie.

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

  • Klastrowany

    • Stosowanie indeksów klastrowanych sortowania i przechowywania wierszy danych w tabela lub widoku, na podstawie ich wartości klucz.Są to kolumny uwzględnione w definicji indeksu.Może być tylko jeden indeks klastrowany tabela, ponieważ sami wierszy danych mogą być sortowane w kolejności, tylko jeden.

    • Jedyny przypadek, wiersze danych w tabeli są przechowywane w porządku sortowania jest, gdy tabela zawiera indeks klastrowany.Jeśli tabela ma indeks klastrowany, tabela jest określana jako klastrowanych tabeli.Jeśli tabela nie indeks klastrowany, jego wierszy danych są przechowywane w strukturze nieuporządkowana o nazwie sterty.

  • Nieklastrowany

    • Ponownego zbudowania indeksów nie klastrowanych ma strukturę oddzielnie od wierszy danych.Indeks nieklastrowany zawiera indeks nieklastrowany wartości klucz i każdego wpisu wartość klucz ma wskaźnika do wiersza danych, który zawiera wartość klucz.

    • Kursor z wierszem indeks nieklastrowany indeks wiersz danych jest nazywany Lokalizator wiersza.Struktura wiersza Lokalizator zależy od tego, czy stron danych są przechowywane w tabela klastrowany lub sterty.Na stosie Lokalizator wiersza jest wskaźnik do wiersza.Dla klastrowanych tabela Lokalizator wiersza jest kluczem indeks klastrowany.

    • Dodawanie kolumn nonkey na poziomie poziom liścia nieklastrowany indeks w celu obejścia istniejący indeks klucz limity, 900 bajtów i 16 kolumn klucz i wykonywać kwerendy w pełni przykryty, indeksowany.Aby uzyskać więcej informacji zobaczIndex with Included Columns.

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

Indeksy klastrowane i nieklastrowany będą unikatowe.Oznacza to, nie dwa wiersze mogą mieć taką samą wartość klucz indeksu.W przeciwnym razie indeks nie jest unikatowy i wiele wierszy mogą współużytkować te same wartości klucz.Aby uzyskać więcej informacji zobaczUnique Index Design Guidelines.

Indeksy są automatycznie obsługiwane dla tabela lub widoku za każdym razem, kiedy modyfikowany jest dane w tabela.

Indeksy i ograniczenia

Indeksy są tworzone automatycznie, gdy ograniczenia klucz podstawowy i unikatowy są zdefiniowane w kolumnach tabela.Na przykład po utworzeniu tabela i zidentyfikować dana kolumna jest klucz podstawowy, Database Engine automatycznie tworzy ograniczenia klucz podstawowy i indeksu w tej kolumnie. Aby uzyskać więcej informacji zobaczTworzenie indeksów (aparat bazy danych).

Sposób użycia indeksów przez optymalizator kwerendy

Dobrze zaprojektowane indeksów może zmniejszyć dyskowych operacji We/Wy i zajmują mniej zasobów systemowych, w związku z tym zwiększania wydajności kwerendy.Indeksy mogą być pomocne w różnych kwerendach, które zawierają SELECT, UPDATE, DELETE lub MERGE instrukcji.Należy wziąć pod uwagę kwerendy SELECT Title, HireDate FROM HumanResources.Employee WHERE EmployeeID = 250 w AdventureWorks Baza danych. Podczas wykonywania tej kwerendy optymalizator kwerendy ocenia każdej dostępnej metoda do pobierania danych i wybiera najbardziej efektywne metoda.Metoda może być skanowanie tabela, lub może być skanowanie jednego lub kilku indeksów, jeśli takie istnieją.

Podczas wykonywania skanowanie tabela, optymalizator kwerendy czyta wszystkie wiersze w tabela, a następnie wyodrębnia wierszy, które spełniają kryteria kwerendy.Skanowanie tabela generuje wiele operacji We/Wy dysku i może być intensywnie wykorzystujących zasób.Jednak skanowanie tabela może być najbardziej efektywne metoda, jeśli na przykład, zestaw wyników kwerendy jest wysoka wartość procentowa wierszy z tabela.

Gdy optymalizator kwerendy używa indeksu, wyszukuje indeks kolumny klucz, wyszukuje lokalizacja przechowywania wierszy, wymagane przez kwerendę i wyodrębnia zgodnych wierszy z tej lokalizacji.Ogólnie rzecz biorąc przeszukiwanie indeksu jest dużo szybciej niż przeszukiwanie tabela, ponieważ inaczej niż w przypadku tabela indeks zawiera często bardzo małą liczbę kolumn w wierszach, a wiersze są sortowane według.

optymalizator kwerendy zazwyczaj wybiera najbardziej efektywne metoda podczas wykonywania kwerendy.Jeśli indeksy nie są dostępne, optymalizator kwerendy muszą używać 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.

See Also

Concepts

Other Resources