Share via


Genel dizin tasarım yönergeleri

Deneyimli veritabanı yöneticileri iyi bir tasarım küme dizinler, ancak bu görevi çok karmaşık, saat alıcı ve hataya bile oldukça karmaşık veritabanları ve iş yükleri için.Veritabanı sorguları ve veri sütunları özelliklerini anlama en iyi dizinler tasarlamanıza yardımcı olabilir.

Veritabanı düşünceleri

Dizin tasarlarken veritabanı aşağıdaki yönergeleri dikkate alın:

  • Çok sayıda dizinler üzerinde bir tablo tüm dizinler uygun şekilde veri olarak ayarlanması gerekir çünkü INSERT, update, delete ve birleştirme deyimleri performansı etkileyen tablo değişiklikler.

    • Yoğun bir şekilde güncelleştirilmiş tablo over-indexing önlemek ve dizinler dar, diğer bir deyişle, mümkün olduğunca az sayıda sütun içeren tutun.

    • Çok sayıda dizinler tablolarda düşük güncelleştirme gereksinimleri, ancak çok büyük miktarlarda veriyi içeren sorgu performansını artırmak için kullanın.Çok sayıda dizinler çünkü select deyimleri gibi verileri değiştirmek sorguları performansını yardımcı olabilir sorgu iyileştiricisi en hızlı erişim yöntem belirlemek arasından seçim için daha fazla dizinleri vardır.

  • Daha basit bir tablo tarama gerçekleştirmek üzere veri arama Dizin Çapraz geçiş için sorgu iyileştiricisi daha uzun sürebileceği için dizin oluşturma küçük tablolar en iyi olmayabilir.Bu nedenle, dizinler üzerinde küçük tablos, hiçbir zaman kullanılabilir, ancak yine de veri olarak saklanması tablo değişiklikler.

  • Toplamalardan, tablo JOIN işlemleri veya toplamalardan ve birleşimler görünümü içeren dizinler üzerinde görünümler önemli performans artışı sağlayabilir.Açıkça Sorguda kullanmak sorgu iyileştiricisi için başvurulacak görünümü yok.Daha fazla bilgi için bkz: Dizin oluşturulmuş görünümler tasarlama.

  • Veritabanınızı çözümleyebilir ve dizin öneriler yapmak için Veritabanı Altyapısı Ayarlama Danışmanı'ı kullanın.Daha fazla bilgi için bkz: Veritabanı Altyapısı Ayarlama Danışmanı'ı Anlama.

Sorgu hakkında önemli noktalar

Dizin tasarlarken, aşağıdaki sorgu yönergeleri dikkate alın:

  • Doðrulamalarda sık kullanılan tüm sütunları üzerinde kümelenmemiş dizinler oluşturmak ve birleştirmek koşulları sorgular.

    Önemli notÖnemli

    Gereksiz sütunları eklemekten kaçının.Çok fazla dizin sütunları ekleme, disk alanı ve dizin bakım performansı olumsuz etkileyebilir.

  • Sorgu gereksinimlerini karşılamak için gerekli tüm verileri dizin içinde bulunduğundan kapsayan dizinler sorgu performansını artırabilirsiniz.İş, yalnızca dizin sayfaları ve tablo veya kümelenmiş dizin veri sayfaları değil, istenen veri almak için gerekli olan; Bu nedenle, genel disk g/Ç azaltır.Örneğin, bir sorgu sütun bir ve b üzerinde bir tablo sütunlar üzerinde oluşturulan bileşik dizin olan bir, b, ve c tek başına dizinden belirtilen veri alabilir.

  • Ekle veya tek bir mümkün olduğunca çok sayıda satır değiştirme yazma sorguları deyim, yerine çoklu sorgularda aynı satırları güncelleştirmek için.Tek bir deyim kullanarak, en iyi duruma getirilmiş dizin bakım yararlanılabilir.

  • Sorgu türü ve sütunları sorguya nasıl kullanıldığı değerlendirin.Örneğin, bir tam eşleşen sorgu türü kullanılan bir sütun kümelenmemiş veya kümelenmiş dizin için iyi bir aday olacaktır.Daha fazla bilgi için bkz: Sorgu türleri ve dizinler.

Sütun hakkında önemli noktalar

Dizin tasarlarken, aşağıdaki sütun kuralları göz önünde bulundurun:

  • Dizinin uzunluğunu anahtar kısaltması kümelenmiş dizinler tutun.Ayrıca, kümelenmiş dizinler benzersiz veya null olmayan sütunlar üzerinde oluşturulan yarar sağlar.Daha fazla bilgi için bkz: Kümelenmiş dizin tasarım yönergeleri.

  • Biri olan sütunlar ntext, text, image, varchar(max), nvarchar(max), ve varbinary(max) veri türü olarak belirtilemezdizin anahtar sütunları. Ancak, varchar(max), nvarchar(max), varbinary(max), ve xml veri türleri katılmak, kümelenmemiş dizin anahtarı olmayan dizin sütunları.Daha fazla bilgi için bkz: Eklenen sütunlar ile dizin.

  • Bir xml veri türü yalnızca bir anahtar olabilir sütun yalnızca, bir xml dizin.Daha fazla bilgi için bkz: xml veri türü sütun dizinlerde.

  • İnceleme sütun Özgünlüğü.Aynı sütun birleşimi benzersiz olmayan bir dizin yerine benzersiz dizin dizin daha kullanışlı hale getiren sorgu iyileştiricisi için ek bilgi sağlar.Daha fazla bilgi için bkz: Benzersiz dizin tasarım yönergeleri.

  • Veri dağıtım İnceleme sütun.Sık sık, uzun süren bir sorguyu birkaç benzersiz değerler içeren bir sütun dizin oluşturma ya da böyle bir sütunun birleştirmek gerçekleştirme neden olur.Bu veriler ve sorgu ile ilgili temel bir sorun ve genellikle bu durumu tanımlayan olmadan çözülemez.Fiziksel bir telefon dizini soyadına göre alfabetik olarak sıralanmış, şehrin tüm kişiler Smith veya Jones adlı bir kişi bulma hızlandırmak gibi.Veri dağıtım hakkında daha fazla bilgi için bkz: İstatistikler sorgu performansını artırmak için kullanma.

  • Filtre uygulanmış dizinler iyi tanımlanmış alt kümeleri, ö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 olan sütunlar üzerinde kullanmayı düşünün.İyi tasarlanmış bir filtre uygulanmış dizin sorgu performansını artırmak, dizin bakım maliyetlerini düşürmek ve depolama maliyetlerini azaltın.Daha fazla bilgi için bkz: Filtre uygulanmış dizin tasarım yönergeleri.

  • Dizin birden fazla sütun içeriyorsa, sütun sırasını göz önünde bulundurun.Bir eşittir (=) büyüktür, where yan tümce tümce tümcesinde kullanılan sütun (>), küçüktür (<), veya arama koşulu, between veya birleştirmek katılan, ilk önce yerleştirilmelidir.Ek sütunlar sipariş dayalı olarak kendi düzey distinctness, diğer bir deyişle, en belirgin dan için az çok farklı.

    Örneğin, dizin olarak tanımlanır, LastName, FirstName dizini arama ölçütünü olduğunda yararlı olacaktır WHERE LastName = 'Smith' veya WHERE LastName = Smith AND FirstName LIKE 'J%'.Ancak, sorgu iyileştiricisi yalnızca Aranan bir sorgu için dizin kullanırsınız FirstName (WHERE FirstName = 'Jane').

  • Hesaplanan sütunlar dizin oluşturmayı düşünün.Daha fazla bilgi için bkz: Dizinler üzerinde hesaplanan sütunlar oluşturma.

Dizin Özellikleri

Bir dizin sorgu için uygun olduğunu belirledikten sonra durumunuza en iyi uyan dizin türünü seçebilirsiniz.Dizin özellikleri şunlardır:

  • Kümelenmiş ve kümelenmemiş

  • Benzersiz ve benzersiz olmayan karşılaştırılması

  • Multicolumn karşı tek sütun

  • Dizin içindeki sütunları azalan veya artan

  • Karşı tam tablo kümelenmemiş dizinler için filtre

Ayrıca, performans ve Bakım FILLFACTOR gibi bir seçeneği ayarlayarak en iyi duruma getirmek dizinin ilk depolama özelliklerini özelleştirebilirsiniz.Daha fazla bilgi için bkz: Dizin seçeneklerini ayarlama.Ayrıca, dizin belirleyebilirsiniz depolama konumu performansı en iyi duruma getirmek için filegroups veya bölüm düzeni kullanarak.Daha fazla bilgi için bkz: Dizinler üzerinde Filegroups yerleştirme.