Dizin tasarım temelleri

Birincil veritabanı Uygulama performansı sorunlarını kaynakları, hatalı tasarlanmış dizinleri ve dizinleri eksik olan.Etkin Dizin tasarlama iyi veritabanı ve uygulama performans sağlandığı için önemli olur.Seçimi sağ dizinleri, iş yükünü ve bir veritabanı için bir sorgu hızı güncelleştirme maliyeti arasındaki karşı karmaşık işlemidir.Dar dizin veya dizinleri ile dizin anahtar birkaç sütun daha az disk alanı ve Bakım yükü gerektirir.Geniş dizinler, diğer yandan, daha fazla sorgularını kapsar.En etkin dizin bulma önce ile birçok farklı tasarımları denemeniz gerekebilir.Dizinler eklenebilen, değişiklik ve şema veya uygulama veritabanı tasarımını etkilemeden bıraktı.Bu nedenle, farklı bir dizin ile denemek için hesitate değil.

sorgu iyileştiricisi SQL Server güvenilir bir şekilde en etkin dizin içinde büyük çoğunluğu durumlarda seçer. Genel dizin tasarım stratejinizin bir dizin seçin ve sağ karar için güven sorgu iyileştiricisi için çeşitli sağlamanız gerekir.Bu çözümleme zamanı azaltır ve iyi performans, çeşitli durumlarda üretir.Hangi sorgu iyileştiricisi dizinler görmek için özel bir sorgu için kullanır... SQL Server Management Studio, üzerinde Sorgu Seçim menüsündeFiili yürütme planı içerir..Daha fazla bilgi için bkz:Nasıl Yapılır: Gerçek bir yürütme planı görüntüle.

Her zaman iyi performans ve etkin dizin kullanımı en iyi performans, dizin kullanım günleriyle değil.Bir dizin, her zaman en iyi performansı elde etmek Yardım'ı kullanarak, sorgu iyileştiricisi işini basit olabilir.Gerçekte, en iyi performansı daha az bir hatalı dizin seçim neden olabilir.Bu nedenle, sorgu iyileştiricisi, görev yalnızca performansı iyileştirir, bir dizin veya dizinleri, bir bileşimini seçmek için performansı azaltabilir, dizinlenmiş alma önlemek için ise.

Dizin tasarım görevleri

Aşağıdaki görevler dizin tasarlama bizim önerilen strateji oluşturur:

  1. Özellikleri veritabanının anlayın.Örneğin, (OLTP) veritabanını sık sık veri değişiklikleri ile karar destek sistemi (DSS) veya veri öncelikle salt okunur verileri içeren veritabanı (OLAP) depolama işleme bir çevrimiçi işlemin nedir?Daha fazla bilgi için bkz:Çevrimiçi işlem ve bu işleme karar destek.

  2. En iyi özelliklerini, sorgularda sık kullanılan anlayın.Örneğin, haberiniz sık kullanılan sorgu iki katılırken veya daha fazla tablo, dizinler kullanmak için en iyi türünü belirlemenize yardımcı olur.Daha fazla bilgi için bkz:Genel dizin tasarım yönergeleri.

  3. Sorgular için kullanılan sütun özelliklerini anlayın.Örneğin, bir Tamsayı veri türü varsa ve aynı zamanda benzersiz veya nonnull sütunları sütunlar için ideal dizinidir.Süzülmüş bir dizin, iyi tanımlanmış veri alt kümelerine sahip olan tüm sütunlar için uygundur.Daha fazla bilgi için bkz:Süzülmüş dizin tasarım yönergeleri.

  4. Dizin oluşturulurken veya tutulan hangi dizin seçeneklerini performansı geliştirmek belirler.Örneğin, kümelenmiş bir dizin üzerinde varolan bir büyük oluşturma tablo ONLINE dizin seçeneğinden yararlı.Dizin olan karşın devam etmek için temel verilerin eşzamanlı etkinliği için ONLINE seçenek sağlar oluşturulma veya yeniden oluşturuldu.Daha fazla bilgi için bkz:Dizin seçeneklerini ayarlama.

  5. Dizin için en iyi depolama konumunu belirleyin.A kümelenmemiş dizin aynı dosya grubunu temel alınan tablo veya farklı bir dosya grubu depolanabilir.Dizin depolama konumu, sorgu performansını artırma disk g/Ç performansı tarafından artırabilirsiniz.Aynı anda birden çok diske okumak için tablo dosya grubu'den farklı bir diskte olan bir dosya grubu kümelenmemiş bir dizin depolama performansı artırabilir.Daha fazla bilgi için bkz:Dizinler üzerinde Filegroups yerleştirme.

    Alternatif olarak, kümelenmiş ve kümelenmemiş dizin bir bölümleme düzeni birden çok dosya gruplarını kullanabilirsiniz.Bölümleme büyük bir tablo veya dizinleri daha kolay yönetilebilir erişmek veya genel koleksiyon bütünlüğünü koruyarak hızlı ve verimli bir şekilde veri alt kümeleri yönetmek vererek yapar.Daha fazla bilgi için bkz:Bölümlenmiş tablolar ve dizinler.Bölümleme düşünün, dizin hizalı, diğer bir deyişle, temel tablo olarak aynı şekilde bölümlenmiş veya bağımsız olarak bölümlenmiş olup olmadığını belirleyin.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.