Aracılığıyla paylaş


Sorgu türleri ve dizinler

Bir sütun üzerinde bir dizin oluşturulup oluşturulmayacağını düşünmeden, sütunun sorgularda nasıl kullanıldığını değerlendirin.Aşağıdaki tablolarda dizinler yararlı sorgu türleri açıklanır.

Not

Örneklerde tablo dayalı AdventureWorks Örnek Veritabanı'nı tıklatın. Örnekler çalıştırdığınızda SQL Server Management Studio, gerçek yürütme planı görüntüleyerek sorgu iyileştiricisi tarafından seçilmiş dizini görüntüleyebilirsiniz. Daha fazla bilgi için bkz:Nasıl Yapılır: Gerçek bir yürütme planı görüntüle.

Sorgu sütun yüklemi biri olduğu

Sorguya açıklama ve örnek

Göz önüne almanız gereken dizin

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

Bir sütun girdisi belirli bir değer belirtmek için WHERE yan tümce, sorgunun kullanma, tam bir eşleşme arar.Örneğin:

SELECT EmployeeID, Title 
FROM HumanResources.Employee 
WHERE EmployeeID = 228; 

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

Tam olarak eşleşen bir IN değer (x, y, z) listesi

Tam olarak eşleşen bir değer belirtilen değerler listesini arar.Örneğin:

SELECT EmployeeID, Title 
FROM HumanResources.Employee 
WHERE EmployeeID IN (288, 30, 15);

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

Değer aralık

Bir sorguyu iki değer arasında bir değer olan herhangi bir girdi ayarının aralýðý 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 ProductModelID sütun.

Tablolar arasında birleştirmek

Satırları arar bir tablo başka bir satırda uyan tablo bir birleştirmek koşulunu alarak.Ö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.

Karşılaştırması

'Abc %' gibi belirli bir karakter dizesi ile başlayan bir eşleşen satırları arar.Ö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

sıralama düzeni, örtülü veya açık sipariş 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 kümelenmemiş veya kümelenmiş dizin.

ASC veya DESC sütun sırasını belirtmek için sütun sıralama, göz önünde bulundurun.

birincil anahtar veya UNIQUE sınırlaması

Yeni dizinin çoğaltmaları arar, değerleri ekleme anahtarının ve işlemleri, birincil anahtar ve UNIQUE kısıtlamaları zorlamak için güncelleştirme.Örneğin:

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

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

UPDATE ya da işlem birincil anahtar/yabancı anahtar ilişkisinde DELETE

Satır, sütun veya CASCADE seçeneği olmadan bir birincil anahtar/yabancı anahtar ilişkisinde katıldığı bir güncelleştirme veya silme işlemi arar.

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

Seçim listesi ancak değil yüklemi sütundur.

Arama ve aramalar için kullanılmaz seçim listesinde bir veya daha fazla sütun var.Örneğin:

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

Kümelenmemiş dizin ile FileName INCLUDE yan tümcesinde belirtildi.