Aracılığıyla paylaş


Kümelenmemiş dizinleri oluşturma

Bir tablo veya dizinli görünüm, birden fazla kümelenmemiş dizinler oluşturabilirsiniz.Genellikle kümelenmemiş dizinler kümelenmiş dizin tarafından kapsanmayan sık kullanılan sorgu performansını artırmak için oluşturulur.

Tipik uygulamaları

Kümelenmemiş dizinler, aşağıdaki yollarla uygulanır:

  • BİRİNCİL anahtar ve benzersiz kısıtlamaları

    PRIMARY key kısıtlaması oluşturduğunuzda, benzersiz kümelenmiş dizin sütun veya sütunlar üzerinde tablo kümelenmiş bir dizin zaten var olmayan ve benzersiz bir kümelenmemiş dizin belirtmezseniz, otomatik olarak oluşturulur.Birincil anahtar sütun null değerlere izin veremez.

    BENZERSİZ kısıtlama oluşturduğunuzda, benzersiz bir kümelenmemiş dizin benzersiz kısıtlamayı zorlamak için varsayılan olarak oluşturulur.Kümelenmiş bir dizin tablo üzerinde henüz yoksa, benzersiz kümelenmiş dizin belirtebilirsiniz.Daha fazla bilgi için bkz: BİRİNCİL anahtar sınırlamaları ve UNIQUE Kısıtları.

  • Dizin bağımsız olarak bir sınırlama

    Varsayılan olarak, kümelenmiş, kümelenmemiş dizin oluşturulur belirtilmemiş.Her tablo oluşturulabilir kümelenmemiş dizinler sayısı 999'dur.Bu, birincil anahtar veya benzersiz kısıtlama tarafından oluşturulan tüm dizinler içerir, ancak xml dizinleri içermez.

  • dizinli görünüm üzerinde kümelenmemiş dizin

    Benzersiz kümelenmiş dizin üzerinde bir görünüm oluşturulduktan sonra kümelenmemiş dizinler oluşturulabilir.Daha fazla bilgi için bkz: Dizin oluşturulmuş görünümler oluşturma.

Eklenen sütunlar ile dizin

Sorgu karşılamak için kümelenmemiş dizin oluşturduğunuzda, birincil arama sütunları olarak kullanılan sütunları sorgu karşılamak için dizini tanımındaki anahtar olmayan sütunlarla içerebilir.Performans artışı elde çünkü sorgu iyileştiricisi ; dizin içindeki tüm gerekli sütun veri bulabilirsiniz Tablo veya kümelenmiş dizin erişilebilir değil.Daha fazla bilgi için bkz: Eklenen sütunlar ile dizin.

Dizin filtre yüklemi ile

Filtre uygulanmış dizin iyi tanımlanmış verilerin alt küme küme küme kümesini seçtiğiniz kapak sorguları için özellikle uygun en iyi duruma getirilmiş bir kümelenmemiş dizin var.Satırların bir kısmını dizin için bir filtre yüklemi kullanır tablo.İyi tasarlanmış bir filtre uygulanmış dizin sorgu performans, dizin bakım maliyetlerini düşürmek ve tam tablo dizinleri ile karşılaştırıldığında dizin depolama maliyetlerini azaltmak artırabilir.

Daha fazla bilgi için bkz: Filtre uygulanmış dizin tasarım yönergeleri.

Disk alanı gereksinimleri

Kümelenmemiş dizinler için disk alanı gereksinimleri hakkında daha fazla bilgi için bkz: Dizin Disk alanı gereksinimleri belirleme.

Performans değerlendirmeleri

Dizin sorgu tarafından kullanılan tüm sütunları içeren önemli olsa da, gereksiz yere sütunlar ekleyerek kaçının.Anahtar ya da anahtarı olmayan, çok fazla dizin sütunları ekleme aşağıdaki performans sonuçları olabilir:

  • Üzerinde daha az dizin satır için uygun bir sayfa artırır ve önbellek verimlilik sınırlı disk g/Ç kaynaklanan.

  • Dizini depolamak için daha fazla disk alanı gerekir.

  • Dizin bakım artırmak saat , değişiklikleri gerçekleştirmek için gereken, ekler, güncelleştirir, siler, veya birleştirmesi için temel alınan tablo veya dizin oluşturulmuş görünüm.

Sorgu performans artışı etkili performans veri değişikliği sırasında ve ek disk alanı gereksinimleri sağlayıp sağlamayacağını belirlemek.Sorgu performans değerlendirme hakkında daha fazla bilgi için bkz: Sorgu ayarlama.

Filtre uygulanmış dizin tablo veri sütunları ile satırları, örneğin seyrek sütunları, çoğunlukla null değerler içeren sütunlar, kategorileri değerleri olan sütunlar ve sütun değerleri farklı aralıklarına sahip, iyi tanımlanmış alt kümelerini olduğunda performansını artırmak için kullanmayı düşünün.Daha fazla bilgi için bkz: Filtre uygulanmış dizin tasarım yönergeleri.

Bir tablo oluşturduğunuzda, bir birincil anahtar veya benzersiz kısıtlama oluşturmak için

CREATE TABLE (Transact-SQL)

Üzerinde varolan bir birincil anahtar veya benzersiz kısıtlama oluşturmak içintablo

ALTER TABLE (Transact-SQL)

Dizin oluşturmak için

CREATE INDEX (Transact-SQL)