2014-05-03 43 views

cevap

29

sp_updatestats bile tek satır değişti veritabanı, tüm tablolar için tüm istatistikleri günceller. Varsayılan örneği kullanarak yapar, yani tablodaki tüm satırları taramaz, bu yüzden alternatiflerden daha az doğru istatistik üretecektir.

varsa bir bakım planı tüm satırları tarar çünkü dahil, aynı zamanda istatistiklerini yenilenir 'endeksleri yeniden' ama daha doğru. Endeksleri yeniden oluşturduktan sonra istatistiklerin yeniden inşa edilmesine gerek yoktur.

Elle güncelleme belirli istatistikler nesne veya update statistics komutla bir tabloda süreci üzerinde çok daha iyi kontrol sağlar. Otomatikleştirmek için here'a bakın.

Otomatik güncelleme yangınları sadece iyileştirici o zorundadır karar verdiğinde. 2012'de matematikte bir değişiklik oldu: < 2012'de, tablo satırlarındaki her 500 +% 20 değişim için otomatik güncelleme başlatıldı; 2012'de SQRT'dir (1000 * Tablo satırları). Büyük masalarda daha sık olduğu anlamına gelir. Geçici tablolar elbette farklı davranır.

Sonuç olarak, sp_updatestats aslında yarardan çok zarar verir ve az tavsiye seçenektir başladı. Ben bir yanlış anlama düzeltmek için

+0

+1 vardı. Sp_updatestats'ın otomatik güncelleme istatistikleriyle aynı prensiplerde çalıştığını düşündüm (% 20 değişim). Teşekkürler! –

+0

@BenThul Thx, ancak daha fazla bilgi için düzenlememe bakın. – dean

+10

@dean Bunun sonuçlarıyla ilgili endişelerinizle ilgilenir miyim? “Aslında bu kadar çok zarar verebilir ve en az tavsiye edilen seçenek olabilir.” - Tek sorun, bakım planlarınızın zaten yapabileceği veya verimsiz olabileceği, ancak alternatifin yanıt vermeyen bir SQL sunucusu örneğiyse, bir sorunun ne kadar büyük olduğu olabilir. – Flo