Açıklanan kümelenmiş ve kümelendirilmemiş dizinler

Dizin, bir tablo veya Görünüm tablo veya Görünüm satır alışınızın ilişkili bir diskte yapısıdır. Dizin, bir veya daha fazla sütun tablo veya Görünüm inşa anahtarları içerir. Bunlar anahtar taşı are stored sağlayan bir yapı içinde (b-ağaç) SQL Serversatır veya hızlı ve etkili anahtar değerleriyle ilişkili satırları bulmak için.

Tablo veya Görünüm dizinler aşağıdaki türlerini içerebilir:

  • Kümelenmiş

    • Kümelenmiş dizinler, sıralayabilir ve tablo veya Görünüm anahtar değerlerine dayalı veri satırlarını depolar. Bu dizini tanımına dahil sütunlar vardır. Veri satırlarını kendilerini tek bir düzende sıralanabilir çünkü tablo başına yalnızca bir Kümelenmiş dizin olabilir.

    • Tablo kümelenmiş bir dizin içeren bir tabloya veri satırları sıralı sırada depolanan tek zamandır. Tablo kümelenmiş bir dizin varsa, tablo kümelenmiş bir tablo adı verilir. Tablo kümelenmiş bir dizin varsa, veri satırlarını yığın denilen bir Rakamsız yapısında depolanır.

  • Kümelendirilmemiş

    • Kümelendirilmemiş dizinler veri satırlarını ayrı bir yapıya sahiptir. Kümelendirilmemiş dizin kümelendirilmemiş dizin anahtar değerleri içerir ve her anahtar değeri girdi veri satırı içeren anahtar değeri için bir işaretçi.

    • İşaretçiyi bir kümelendirilmemiş dizin dizin satır veri satırı bir satır Konumlandırıcı denir. Satır Konumlandırıcı yapısı olup veri sayfaları bir yığın veya kümelenmiş bir tabloda depolanan üzerinde bağlıdır. Yığın, bir satır Konumlandırıcı satır bir işaretçidir. Kümelenmiş bir tablo için satır Konumlandırıcı Kümelenmiş dizin anahtarıdır.

    • Yaprak düzeyi by-pass varolan dizin anahtar sınırları, 900 bayt ve 16 anahtar sütun kümelendirilmemiş dizin nonkey sütunları eklemek ve tamamen kapalı, dizinlenmiş, sorguları yürütmek. Daha fazla bilgi için, bkz. Eklenen sütunlar ile dizin oluşturmak.

Kümelenmiş ve kümelendirilmemiş dizinler benzersiz olabilir. Bu iki satır aynı dizin anahtar değeri olabileceği anlamına gelir. Aksi durumda, dizin benzersiz değildir ve birden çok satır aynı anahtar değeri paylaşabilirsiniz. Daha fazla bilgi için, bkz. Benzersiz dizinler oluşturun.

Tablo veri değiştirildiğinde dizinler otomatik olarak bir tablo veya görünüm için korunur.

Bkz: Dizinlerek türleri özel amaçlı dizinler için.

Dizinler ve kısıtlamalar

PRIMARY key ve UNIQUE kısıtlamaları tablo sütunları tanımlı dizinler otomatik olarak oluşturulur. Örneğin, tablo oluşturma ve belirli bir sütunda birincil anahtar olarak tanımlamak Veritabanı AltyapısıBu sütun PRIMARY key kısıtlaması ve dizini otomatik olarak oluşturur. Daha fazla bilgi için Birincil anahtarları oluşturve Benzersiz kısıtlama oluşturma.

Dizinler sorgu en iyi duruma getiricisi tarafından nasıl kullanıldığını

İyi tasarlanmış dizinler disk g/Ç işlemlerini azaltır ve bu nedenle sorgu performansını daha az sistem kaynağı tüketir. Dizinler içeren select, update, delete veya deyimleri merge sorguları bir dizi için yararlı olabilir. Sorguyu düşünün SELECT Title, HireDate FROM HumanResources.Employee WHERE EmployeeID = 250de AdventureWorks2012 veritabanı. Bu sorgu yürütüldüğünde, sorgu iyileştiricinin veri almak için kullanılabilir her yöntemi değerlendirir ve en etkili yöntem seçer. Yöntem bir tablo taraması olabilir veya varsa bir veya daha fazla dizin tarama.

Bir tablo taraması gerçekleştirilirken, query optimizer tablosundaki tüm satırları okur ve sorgu ölçütlerine uyan satırları ayıklar. Tablo tarama birçok disk g/Ç işlemlerini oluşturur ve kaynak yoğun olabilir. Ancak, örneğin, sorgunun sonuç kümesini tablodaki satırların yüksek oranda ise bir tablo taraması en verimli yöntem olacaktır.

Sorgu en iyi duruma getiricisi dizin kullandığında, bu dizin anahtar sütunları arar, sorgu tarafından gerekli satırları depolama konumunu bulur ve o konumdan eşleşen satırları ayıklar. Genellikle, dizin arama çünkü bir tablo, dizin sık satır başına çok az sütun içeren ve sıralanmış düzende satırları tablo arama daha hızlıdır.

Sorgu en iyi duruma getiricisi genellikle en etkili yöntem sorguları yürütme seçer. Ancak, dizin varsa, sorgu iyileştirici bir tablo taraması kullanmanız gerekir. Göreviniz, tasarım ve böylece sorgu iyileştirici etkili dizinler seçileceği bir seçim ortamınız için en uygun olan dizinler oluşturmak etmektir. SQL Serversağlar Veritabanı Altyapısı Ayarlama DanışmanıÇözümleme veritabanı ortamı ve uygun dizinleri seçimine yardımcı olmak için.

ilişkili Görevler

Kümelenmiş dizinler oluşturma

Kümelendirilmemiş dizinler oluşturma