Aracılığıyla paylaş


Sorgu türleri ve dizinler

Bir sütun üzerinde dizin oluşturulup oluşturulmayacağını ele alırken sütun sorgularda nasıl kullanılır değerlendirin.Aşağıdaki tablolarda dizinler yararlı sorgu türleri açıklanmaktadır.

Not

Tablo örnekleri esas alan AdventureWorks2008R2 örnek veritabanı.Örnekler çalıştırdığınızda SQL Server Management Studio, seçtiği dizinler görebilirsiniz sorgu iyileştiricisi görüntüleyerek fiili yürütme planı.Daha fazla bilgi için bkz: Nasıl yapılır: Fiili yürütme planı görüntülemek.

Sorgu sütun yüklemi bunlardan biri olduğu

Sorgu açıklama ve örnek

Göz önünde bulundurulması gereken dizini

Belirli bir değerle tam olarak eşleşen

Sorgunun belirli bir değere sahip bir sütun giriş belirtmek için where yan tümce tümce tümcesini kullanır tam bir eşleşme arar.Örneğin:

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

Kümelenmemiş veya kümelenmiş dizin BusinessEntityID sütun.

Bir de bir değeri tam olarak eşleşen (x, y, z) listesi

Belirtilen değer listesinde bir değer için tam bir eşleşme arar.Örneğin:

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

Kümelenmemiş veya kümelenmiş dizin BusinessEntityID sütun.

Değer aralığı

Sorguyu iki değer arasında bir değer olan giriş belirten değer aralık arar.Örneğin:

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

Or

WHERE ProductModelID >= 1 AND ProductModelID <= 5

Kümelenmiş veya kümelenmemiş dizin üzerinde ProductModelID sütun.

Tablolar arasında birleştirme

Satırları arar bir tablo başka bir satırda uyan tablo üzerinde bir birleştirmek yüklemi dayalı.Örneğin:

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;

Kümelenmemiş veya kümelenmiş dizin ProductID ve ProductAssemblyID sütunlar.

GİBİ karşılaştırma

Belirli karakterle başlayan eşleşen satırları arar dize 'abc %' gibi.Örneğin:

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

Kümelenmemiş veya kümelenmiş dizin Name sütun.

Sıralanmış veya toplanan

Bir açık veya kapalı sıralama düzeni düzenini veya bir toplama (group by) gerektirir.Örneğin:

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;

Sıralanmış veya toplanan sütun üzerinde kümelenmemiş veya kümelenmiş dizin.

Sütunları sıralama için sütun asc veya desc sırasını belirtme düşünün.

BİRİNCİL anahtar veya benzersiz kısıtlama

Yeni dizin aramalarından anahtar değerleri ekleme ve güncelleştirme işlemlerinde, birincil anahtar ve benzersiz kısıtlamaları zorlamak için.Örneğin:

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

Kümelenmiş veya kümelenmemiş dizin sütun veya sütunları sınırlaması tanımlı.

Güncelleştirme veya silme işlemi bir birincil anahtar/yabancı anahtar ilişkisi

Bir güncelleştirme veya silme işleminde hangi satırları arar sütun birincil anahtar/yabancı anahtar ilişkisi olan veya olmayan cascade seçeneği.

Yabancı anahtar üzerinde kümelenmemiş veya kümelenmiş dizin sütun.

Seçim listesi ancak yüklemi sütundur.

Arama ve arama için kullanılan bir veya daha fazla sütun seçim listesi içerir.Örneğin:

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

Kümelenmemiş dizin ile FileName belirtilen INCLUDE yan tümce tümce tümce.