Udostępnij za pośrednictwem


Typy kwerend i indeksów

Czy utworzyć indeks w kolumnie rozważa, należy ocenić się, jak kolumna jest używana w kwerendach.Poniższej tabeli opisano typy kwerend, dla których indeksy są użyteczne.

Ostrzeżenie

Przykłady w tabela są oparte na AdventureWorks2008R2 przykładowej bazy danych.Po uruchomieniu przykłady SQL Server Management Studio, można przeglądać indeksy, które są wybranego przez optymalizator kwerendy, wyświetlając rzeczywiste wykonanie planu.Aby uzyskać więcej informacji, zobacz Jak Wyświetlić rzeczywiste Plan wykonania.

Kwerenda, w której predykat kolumna jest jedną z tych

Opis kwerendy i przykład

Indeks do rozważenia

Dokładne dopasowanie do określonej wartości

Wyszukuje dokładny odpowiednik, w którym w kwerendzie użyto klauzula WHERE do określenia pozycji kolumna z określonej wartości.Na przykład:

SELECT BusinessEntityID, JobTitle 
FROM HumanResources.Employee 
WHERE BusinessEntityID = 228; 

Indeks klastrowany lub nieklastrowany na BusinessEntityID kolumna.

Dokładne dopasowanie do wartości W (x, y, z) listy

Wyszukuje dokładny odpowiednik wartości wymienionych na liście wartości.Na przykład:

SELECT BusinessEntityID, JobTitle 
FROM HumanResources.Employee 
WHERE BusinessEntityID IN (288, 30, 15);

Indeks klastrowany lub nieklastrowany na BusinessEntityID kolumna.

Zakres wartości

Wyszukuje zakres wartości, w których kwerendy Określa wpis ma wartość pomiędzy dwoma wartościami.Na przykład:

SELECT ProductModelID, Name
FROM Production.ProductModel
WHERE ProductModelID BETWEEN 1 and 5;

Or

WHERE ProductModelID >= 1 AND ProductModelID <= 5

Klastrowany lub indeks nieklastrowany na ProductModelID kolumna.

Sprzężenia między tabelami

Przeszukuje wiersze w tabela, które odpowiadają wiersza w innej tabela, w oparciu o predykat łączyć.Na przykład:

SELECT a.ProductAssemblyID, b.Name, a.PerAssemblyQty
FROM Production.BillOfMaterials AS a
JOIN Production.Product AS b 
ON a.ProductAssemblyID = b.ProductID
WHERE b.ProductID = 900;

Indeks klastrowany lub nieklastrowany na ProductID i ProductAssemblyID kolumny.

Podobnie jak porównania

Wyszukiwanie zgodnych wierszy rozpoczynających się ciąg znaków szczególnych, takich jak "abc %".Na przykład:

SELECT CountryRegionCode, Name 
FROM Person.CountryRegion 
WHERE Name LIKE N'D%'

Indeks klastrowany lub nieklastrowany na Name kolumna.

Posortowane lub łączone

Wymaga kolejność sortowania sortowania bezpośrednia lub pośrednia lub agregacja (Grupuj według).Na przykład:

SELECT a.WorkOrderID, b.ProductID, a.OrderQty, a.DueDate 
FROM Production.WorkOrder AS a
JOIN Production.WorkOrderRouting AS b 
ON a.WorkOrderID = b.WorkOrderID
ORDER BY a.WorkOrderID;

Indeks klastrowany lub nieklastrowany sortowane lub zagregowane kolumna.

Sortowanie kolumn należy rozważyć w określanie kolejności ASC lub DESC kolumna.

Ograniczenie na klucz podstawowy lub unikatowe

Wyszukiwania duplikatów nowy indeks klucz wartości Wstaw i aktualizowanie operacji wymuszania ograniczeń klucz podstawowego i unikatowe.Na przykład:

INSERT INTO Production.UnitMeasure (UnitMeasureCode, Name, ModifiedDate)
VALUES ('OZ1', 'OuncesTest', GetDate());

Klastrowany lub indeks nieklastrowany na kolumna lub kolumn zdefiniowanych w ograniczeniu.

Operacji w relacji klucza podstawowego klucz i zagranicznych aktualizacji lub usuwania

Wyszukuje wierszy w operacji aktualizacji lub usunięcia, w którym kolumna uczestniczy w relacji klucza podstawowego klucz i zagranicznych, z lub bez opcji KASKADOWO.

Indeks klastrowany lub nieklastrowany kolumna klucz obcy.

Kolumna jest na liście select, ale nie w predykacie.

Zawiera jedną lub więcej kolumn na liście Wybierz, które nie są używane do wyszukiwania i wyszukiwań.Na przykład:

SELECT Title, Revision, FileName
FROM Production.Document
WHERE Title LIKE N'%Maintenance%' AND Revision >= 0';

Indeks nieklastrowany z FileName określonych w klauzula INCLUDE.