Share via


Eklenen sütunlar ile dizin oluşturmak

Kümelenmemiş dizin anahtar sütunları yanında anahtarı olmayan sütunları da dahil olmak üzere uzatılabilir.Anahtar olmayan sütunlarla b-ağaç dizin yaprak düzey depolanır.

Anahtar olmayan sütunlarla içeren dizinler sorgu kaplayacağını en büyük avantaj sağlar.Bu sorgu tarafından başvurulan tüm sütunların dizinler dahil etmek anlamına gelir.Daha fazla bilgi için bkz: Eklenen sütunlar ile dizin.

Disk alanı gereksinimleri

Anahtar olmayan sütunlarla dizine ekleme dizini depolamak için daha fazla disk alanı kullanır.Özellikle, ekleme varchar(max), nvarchar(max), varbinary(max), veya xml anahtar olmayan sütunlarla olarak veri türleri önemli ölçüde artırma disk alanı gereksinimleri nedeniyle sütun değerlerini dizin yaprak düzey içine kopyalanır ve aynı zamanda kalır tablo veya kümelenmiş dizin.

Sütunlar dizinler için disk alanı gereksinimleri belirleme işlemi, kümelenmemiş dizinleri aynıdır.Bilgi için bkz: Dizin Disk alanı gereksinimleri belirleme.

Performans değerlendirmeleri

Performans artışı nedeniyle seçme işlemlerinde elde sorgu iyileştiricisi ; dizin içindeki tüm gerekli sütun veri bulabilirsiniz Tablo veya kümelenmiş dizin erişilebilir değil.Ancak, çok fazla dahil sütunları sahip artış gösterirken, saat yani INSERT gerçekleştirmek için gereken, güncelleştirme veya silme işlemleri için temel alınan temel alınan tablo veya dizinli görünüm nedeniyle artan dizin Bakım.

Örnekler

A.Bir sorgu kapsayan

Aşağıdaki örnek üzerinde kümelenmemiş dizin oluşturur Person.Address Tablo ile dört dahil sütunlar.Dizin anahtar sütun olan PostalCode ve nonkey sütuns AddressLine1, AddressLine2, City, ve StateProvinceID.

USE AdventureWorks2008R2;
GO
CREATE NONCLUSTERED INDEX IX_Address_PostalCode
ON Person.Address (PostalCode)
INCLUDE (AddressLine1, AddressLine2, City, StateProvinceID);
GO

Bu sorgu, dizine göre ele alınacaktır.

SELECT AddressLine1, AddressLine2, City, StateProvinceID, PostalCode
FROM Person.Address
WHERE PostalCode BETWEEN '98000' and '99999';
GO

B.Dizin boyutu sınırlaması aşan

Aşağıdaki örnekte, genellikle 900 bayt maksimum anahtar sütun boyutu sınırı aşabilir sütun dizin oluşturmak için create INDEX deyim INCLUDE yan tümce tümce tümce kullanılır.The Production.ProductReview table contains these columns: ProductID(int), ReviewerName(nvarchar (50)) and Comments (nvarchar (3850)).Bu sütunlarda sık sık sorgularda kullanılır, ancak Comments sütun çok büyük katılmak gibi bir dizin anahtar sütunu.Ancak, kullanarak INCLUDE yan tümce tümce, Comments sütun eklenemez anahtarı olmayan bir sütun dizini.

USE AdventureWorks2008R2;
GO
CREATE NONCLUSTERED INDEX IX_ProductReview_ProductID_ReviewerName
ON Production.ProductReview (ProductID, ReviewerName)
INCLUDE (Comments);
GO

Bu sorgu, dizine göre ele alınacaktır.

SELECT Comments
FROM Production.ProductReview 
WHERE ProductID = 937;
GO

Eklenen sütunlar ile dizin oluşturmak için

CREATE INDEX (Transact-SQL)