Dizin tasarım temelleri
Hatalı tasarlanmış dizinler ve dizinler eksikliği veritabanı uygulama performansı sorunlarını, birincil kaynaklardır.Verimli dizinler tasarlama iyi veritabanı ve uygulama performansını elde etmek için hedefiydi.Seçimi sağ dizinleri için bir veritabanı ve iş yükünü sorgu hız ve maliyet güncelleştirmesi arasında karmaşık bir karşı işlemidir.Dar dizin veya dizinleri dizin içindeki birkaç sütun ile anahtar, daha az disk alanı ve Bakım ek yük gerektirir.Geniş dizinler, diğer yandan daha fazla sorgularını karşılamak.Birkaç farklı tasarımları ile en etkin dizin bulmadan önce denemek zorunda kalabilirsiniz.Dizinler eklenebilir, değiştirilebilir ve veritabanı şeması veya uygulama tasarımı etkilemeden bırakılan.Bu nedenle, farklı dizinler ile Denemekten değil.
sorgu iyileştiricisi, SQL Server en etkin dizin içinde büyük çoğunluğu'güvenilir bir şekilde seçerdurumda. Genel dizin tasarım stratejinizi dizinleri seçin ve sağ kararını kendisine güven sorgu iyileştiricisi için çeşitli sağlamalıdır.Bu analiz azaltır saat ve çeşitli durumlar üzerinde iyi bir performans üretir.Hangi dizinleri görmek için sorgu iyileştiricisi belirli bir sorgu için kullandığı SQL Server Management Studio, sorgu menü seçin Fiili yürütme planı dahil.Daha fazla bilgi için bkz: Nasıl yapılır: Fiili yürütme planı görüntülemek.
Her zaman iyi bir performans ve iyi performans verimli dizin kullanımı ile dizin kullanımı günleriyle.Dizin her zaman kullanma işini en iyi performansı elde etmek Yardım, sorgu iyileştiricisi basit olurdu.Gerçekte, en iyi performans daha az hatalı dizin seçim neden olabilir.Bu nedenle, sorgu iyileştiricisi'ın yalnızca performansı iyileştirir, bir dizin veya dizinleri, birleşimini seçin ve performansını azaltabilir, dizinlenmiş almayı önlemek için görevdir.
Dizin tasarım görevleri
Aşağıdaki görevler dizinler tasarlama bizim önerilen strateji oluşturur:
Veritabanı özelliklerini anlamak.Örneğin, bir çevrimiçi işlem işleme (oltp) veritabanı ile sık sık veri değişiklikleri veya karar destek sistemi (dss) veya veri depolama öncelikle salt okunur verileri içeren (olap) veritabanına mı?Daha fazla bilgi için bkz: Çevrimiçi işlem işleme vs. Karar destek.
Sorgu özellikleri en sık kullanılan anlamak.Örneğin, sık kullanılan bir sorgu iki katıldığında veya daha fazla tablo dizinleri kullanmak için en iyi türünü belirlemenize yardımcı olacak bilmek.Daha fazla bilgi için bkz: Genel dizin tasarım yönergeleri.
Sorgularında kullanılan sütunları özelliklerini anlamak.Örneğin, bir dizin, bir tamsayı veri türüne sahip ve aynı zamanda benzersiz veya null olmayan sütunları sütunlar için idealdir.Filtre uygulanmış dizin iyi tanımlanmış veri alt kümelerine sahip sütunlar için uygundur.Daha fazla bilgi için bkz: Filtre uygulanmış dizin tasarım yönergeleri.
Dizin oluşturulduğunda veya tutulan hangi dizin seçeneklerini performansı geliştirmek belirler.Örneğin, büyük üzerinde varolan bir kümelenmiş dizin oluşturma tablo çevrimiçi dizin seçeneği yararına oluyor.Dizini devam etmek için alttaki verilere eşzamanlı etkinliği için çevrimiçi seçeneğini verir oluşturulan veya yeniden.Daha fazla bilgi için bkz: Dizin seçeneklerini ayarlama.
En iyi belirlemek depolama konumu dizini için.kümelenmemiş dizin aynı dosya grubu temel alınan tablo veya farklı bir dosya grubu üzerinde depolanabilir.depolama konumu Dizinlerini disk g/Ç performansını artırarak, sorgu performansını artırır.Örneğin, aynı anda birden çok diske okunabilir olduğundan tablo dosya grubu performansı çok farklı bir disk üzerinde bir dosya grubu kümelenmemiş dizin depolama saat.Daha fazla bilgi için bkz: Dizinler üzerinde Filegroups yerleştirme.
Alternatif olarak, kümelenmiş ve kümelenmemiş dizinleri bir bölümleme düzeni arasında birden çok dosya gruplarını kullanabilirsiniz.Bölümleme yaptığı büyük tabloları veya dizinler daha kolay yönetilebilir, erişme veya veri alt kümelerine hızlı ve verimli bir şekilde yönetmeleri vererek bütünlük genel koleksiyon.Daha fazla bilgi için bkz: Bölümlenmiş tablolar ve dizinler.Bölümleme göz önüne aldığınızda dizini hizalı, yani, temelde aynı şekilde tablo bölümlenmiş veya bağımsız olarak bölümlenmiş belirler.Daha fazla bilgi için bkz: Bölümlenmiş dizinler için özel yönergeleri.
Bu görevler hakkında daha fazla bilgi için bkz: Genel dizin tasarım yönergeleri.