Aracılığıyla paylaş


Dizin temelleri

Bir tablo ya da satır tabloyu veya görünümü alışınızın hızlanmasını görünümü ile ilişkilendirilmiş bir disk yapısı dizinidir.Dizin tablo veya görünüme bir veya daha fazla sütunlarından yerleşik anahtarları içerir.Bu anahtarları sağlayan bir yapıda (B-ağacı) saklanır SQL Server satır veya hızlı ve verimli bir şekilde anahtar değerleriyle ilişkili satırları bulmak için .

Bir tablo veya Görünüm aşağıdaki türlerde dizinleri içerebilir:

  • Clustered

    • Kümelenmiş dizinler, sıralamak ve tablo veya Görünüm anahtar değerlerine dayalı veri satırlarını depolar.Dizin tanımı içinde bulunan sütunlar şunlardır.Veri satırlarını kendilerini tek bir sıraya göre sıralanabilir, çünkü tablo başına yalnızca kümelenmiş dizin olabilir.

    • kümelenmiş dizin tablo içeren bir tabloya veri satırları sıralanmış bir sırada depolanan tek saat.Bir tablo, kümelenmiş dizin varsa, tabloyu kümelenmiş bir tablo olarak adlandırılır.Bir tablo, kümelenmiş dizin varsa, veri satırlarını yığın adlı sıralanmamış bir yapıda saklanır.

  • Kümelenmemiş

    • Kümelenmemiş dizin veri satırlarını ayrı bir yapıya sahip.Kümelenmemiş dizin anahtar değerlerinin kümelenmemiş BIR dizin içerir ve her anahtar, değer girişi bir anahtar değeri içeren bir veri satırı sahip.

    • Kümelenmemiş bir dizin içinde bir dizin satırdan işaretçiyi bir veri satırı için bir satır Konum Belirleyicisi olarak adlandırılır.Konum Belirleyici satır yapısını olup olmadığını veri sayfaları yığın veya kümelenmiş bir tabloda depolanır üzerinde bağlıdır.Bir yığın için bir satır Konumlandırıcısı satıra bir işaretçidir.Kümelenmiş bir tablo için satır konum belirleyici kümelenmiş dizin. anahtar.

    • yaprak düzey by-pass varolan dizin anahtar sınırları, 900 baytı ve 16 anahtar sütunlarının kümelenmemiş dizin anahtar olmayan bir sütun ekleyin ve tam olarak kapsanan, dizili, sorguları çalıştırmak.Daha fazla bilgi için bkz:Içerilen sütunları içeren dizin.

Dizin mimarisi hakkında daha fazla bilgi için bkz: Tablo ve dizin veri yapıları mimarisi.

Kümelenmiş ve kümelenmemiş dizin benzersiz olabilir.Yani, iki satır için dizin anahtarını aynı değere sahip olabilir.Aksi durumda, dizini benzersiz değil ve birden çok satır aynı anahtar değeri paylaşabilirsiniz.Daha fazla bilgi için bkz:Benzersiz dizin tasarım yönergeleri.

Tablo verileri değiştirildiğinde dizinlerinin bir tablo veya Görünüm için otomatik olarak sürdürülür.

Dizinler ve kısıtlamalar

birincil anahtar ve UNIQUE kısıtlamaları, tablo sütun tanımlandığında, dizinler otomatik olarak oluşturulur.Örneğin, bir tablo oluşturun ve birincil anahtar olarak belirli bir sütun tanımlamak Database Engine Bu sütunda otomatik olarak bir PRIMARY KEY kısıtlaması ve dizin oluşturur. Daha fazla bilgi için bkz:Dizinler (Veritabanı Altyapısı) oluşturma.

Indexes sorgu iyileştiricisi tarafından nasıl kullanıldığı

Iyi tasarımlanmış dizinler disk g/Ç işlemlerini azaltmak ve bu nedenle, sorgu performansını artırma daha az sistem kaynağı tüketir.Dizinleri veya SELECT, UPDATE, DELETE içeren ifadeleri BIRLEŞTIRME sorguları için çeşitli yardımcı olabilir.Sorguyu göz önünde bulundurun. SELECT Title, HireDate FROM HumanResources.Employee WHERE EmployeeID = 250 içinde AdventureWorks Veritabanı. Bu bir sorgu yürütüldüğünde, sorgu iyileştiricisi, verileri almak için kullanılabilir her yöntemi değerlendirir ve en verimli yöntem seçer.Yöntem bir tablo taraması olabilir veya varsa bir veya daha fazla dizin taranıyor.

Tablo tarama yapılırken, sorgu iyileştiricisi tablosundaki tüm satırları okur ve sorgu ölçütü karşılayan satırları ayıklar.Bir tablo taraması, birden çok disk g/Ç işlemini oluşturur ve kaynak yoğundur olabilir.Ancak, örneğin, sorgunun sonuç kümesi tablodaki satırların yüksek bir yüzdesini, bir tablo taraması en etkin yöntem olabilir.

sorgu iyileştiricisi dizin kullandığında, dizin anahtar sütunlarının arar, sorgu tarafından gerekli satırları depolama konumunu bulur ve bu konumdan eşleşen satırları ayıklar.Genellikle, dizin arama farklı olarak, dizin sık satır başına en çok az sayıda sütun içeren satırları sıralanmış sıradadır olduğundan tablo arama daha hızlıdır.

sorgu iyileştiricisi sorguları yürütürken en verimli yöntem genelde seçer.Ancak, sorgu iyileştiricisi dizin yoksa, bir tablo taraması kullanmanız gerekir.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