İstatistikleri Güncellemek İçin Ne Zaman?


42

Aşağıdakileri yapan bir Bakım Planları miras aldım:

  • Eski verileri temizleme
  • DB bütünlüğünü kontrol eder
  • Veritabanı ve İşlem Günlüğü Yedeklemeleri Yapar
  • Dizinlerimizi Yeniden Düzenliyor
  • Güncelleme İstatistikleri
  • Eski yedekleri ve Bakım Planı dosyalarını silin

23 dakikalık Bakım Planının İstatistiklerini Güncellemek 13 dakikalık şaşırtıcı bir zaman alıyor. Bu 13 dakikalık süre zarfında, veri tabanına erişim engellenmiştir (veya en azından bu veri tabanından diğerlerine çoğaltma duraklatılmıştır).

Sorum şu:

İstatistikleri ne zaman güncellemeliyiz ve neden?

Bu her günden daha az sıklıkta yapmamız gereken türden bir şey gibi görünüyor. Gereksiz Bakım yapmanın zihinsel kümesinden bizi “haklı” çıkarmaya çalışıyorum.


2
Herhangi bir satır ne sıklıkla / nasıl eklenir / güncellenir / silinir? Bana göre bu karar faktörüdür.
JNK

@ JNK Tüm DB'ye günde ~ 70.000 satır ekleriz. Ayda 100 satır güncelleyin.
Soğan-Şövalye

1 - Bu, TABLE tarafından kaç satır olduğunu ve yüzde 2 olduğunu biliyorsak daha anlamlı olur. 1m'lik bir masaya günde 70k satır, 500m'lik bir masaya oranla çok farklıdır
JNK

Ben gibi bir şey kullanarak öneriyoruz ola.hallengren.com/... sadece rebuilds / yeniden düzenler ve güncellemelerin maintinance planı alır ve ayrıca günlük alanı bir delik çok tasarruf zamanı kısaltmalıyım olabilir bu şekilde ihtiyaç duyulan şey .. Bu çözümü
Peter

Yanıtlar:


28

Eğer bunun için bir bakım pencereniz yoksa, günlük istatistikleri güncellemek muhtemelen biraz daha fazla. Özellikle , veritabanı için Otomatik Güncelleme İstatistikleri açıksa . Orijinal yazınızda, kullanıcıların bu bakım planı nedeniyle bir performans bozulması gördüklerini söylediniz. Bu bakım planını uygulamak için başka zaman yok mu? Başka pencere yok mu? Planınızın dizin yeniden düzenlemeyi içerdiğini görüyorum, ne zaman dizinleri yeniden oluşturuyorsunuz? Bu işlem gerçekleştiğinde, istatistikler otomatik olarak güncellenir (dizin için kapalı olması şartıyla).

Tam olarak istatistikleri ne sıklıkta güncellemeniz gerektiği büyük ölçüde dizinlerinizde ve verilerinizde ne kadar veri değişikliği yapıldığına bağlıdır . Çok az modifikasyon (varsa INSERT, UPDATE, DELETEverilere), o zaman güncelleme istatistikleri iş için daha seyrek zamanlama olabilir.

İstatistiklerinizin bayat olup olmadığını öğrenmenin bir yolu, yürütme planlarına bakmaktır ve satırların gerçek satırlarınızdan büyük ölçüde farklı olduğunu tahmin ediyorsanız, aralığın yükseltilmesi gerektiğine dair iyi bir göstergedir. Senin durumunda, başka bir yoldan gidiyorsun ve senin için bir miktar deneme olabilir. İstatistikleri haftalık olarak güncelleyin ve eski istatistiklerin anlatılan belirtilerini görmeye başlarsanız oradan gidin.

Veritabanınız için Otomatik Güncelleme İstatistikleri kullanıyorsanız, istatistiklerin ne zaman güncellendiğine ilişkin eşik için bu referansa bakın .


Endeksleri haftada bir kez yeniden oluşturuyoruz.
Soğan-Şövalye

5
@ Soğan-Şövalye Ardından, dizinlerinizi yeniden oluşturduğunuzda haftada bir kez istatistikleri de güncelliyorsunuzdur. Veritabanında bir battaniye dizini yeniden oluşturuyorsanız bu yeterli olabilir.
Thomas Stringer

25

İstatistikleri Güncellemek İçin Ne Zaman?

eğer ve sadece otomatik güncelleme istatistikleri özelliği ihtiyaçlarınız için yeterince iyi değilse. Yani, otomatik oluşturma ve otomatik güncelleme istatistikleri AÇIK ise ve istatistikler doğru veya güncel olmadığı için hatalı bir sorgu planı alıyorsanız, istatistik oluşturma ve güncelleme üzerinde kontrol sahibi olmak iyi bir fikir olabilir. ancak sql sunucu performansınız ve Sorgu yürütme süreleriniz için sorun değil.

ardından Güncelleştirme İstatistikleri komutunu Bakım Planlarınızdan durdurmanızı öneririz .

istatistiklerin güncellenmesi önemlidir ve faydalıdır 1. SQL Server sorgu iyileştiricisinin, geliştirme ve yönetim maliyetlerini düşük tutarken iyi sorgu planları üretmesine olanak sağlar. 2. İstatistikler, ifadelerin seçiciliğini ve dolayısıyla ortalamanın boyutunu tahmin etmek için sorgu iyileştirici tarafından kullanılır. ve son sorgu sonuçları. 3. İyi istatistikler, optimizer'ın farklı sorgu planlarının maliyetini doğru bir şekilde değerlendirmesini ve ardından yüksek kaliteli bir plan seçmesini sağlar


İstatistiklerin manuel olarak güncellenmesini istiyorsanız, önce İstatistiğin otomatik olarak güncellendiğini bilmelisiniz.

SQL Server sorgu iyileştiricisi, istatistiklerin en son oluşturulmasından veya güncellenmesinden bu yana önemli bir güncelleme etkinliği geçirmiş bir tablodaki belirli bir sütun için istatistikler gerektiriyorsa, SQL Server, sütun değerlerini örnekleyerek (otomatik güncelleme istatistiklerini kullanarak) istatistikleri otomatik olarak günceller. . Otomatik istatistik güncellemesi, sorgu optimizasyonu veya derlenmiş bir planın uygulanması ile tetiklenir ve sorguda belirtilen sütunların yalnızca bir alt kümesini içerir. AUTO_UPDATE_STATISTCS_ASYNC OFF ise istatistikler sorgu derlemeden önce güncellenir

SQL server'da güncelleme istatistikleri tetiklendiğinde konuşacak güzel makaleler.

  1. Basit-konuşma bölümünden 13. 13. İstatistiklere Otomatik Güncelleme ne zaman tetiklenir?
  2. support.microsoft Bölüm: Autostats belirleme işlemini otomatikleştirme
  3. msdn.microsoft bölüm: SQL Server 2008'de İstatistiklerin Korunması

istatistiklerin ne zaman tetiklendiğini bildikten sonra, istatistikleri ne zaman güncelleyeceğinize karar vermenize yardımcı olacaktır.

İstatistik ve performans üzerindeki etkisi hakkında daha fazla bilgi edinmek için, çok iyi bloglarda ve blog yazarlarında BrentOzar ve Kimberly'yi tavsiye ederim .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.