Kdy aktualizovat statistiky?

Zdědil jsem plány údržby, které provádějí následující:

  • Vyčištění starých dat
  • Zkontroluje integritu databáze
  • Provádí zálohy databází a transakcí
  • Reorganizuje naše indexy
  • Statistiky aktualizací
  • Smazat staré zálohy a soubory plánu údržby

Z 23minutového plánu údržby trvá aktualizace statistik závratných 13 minut. Během této 13minutové periody je přístup k databázi blokován (nebo alespoň replikace z této databáze na naše ostatní je pozastaveno).

Moje otázka zní:

Kdy bychom měli být Aktualizace statistik a proč?

Zdá se to jako něco, co bychom měli dělat méně často než každý den. Snažím se nás dostat z mysli „jen proto, že“ děláme zbytečné Údržba.

Komentáře

  • Jak často / jak se vkládají / aktualizují / odstraňují řádky? Pro mě je to rozhodující faktor.
  • @JNK Vložíme ~ 70 000 řádků denně přes celou DB. Aktualizujte ~ 100 řádků měsíčně.
  • 1 – To je relevantnější, pokud podle TABLE víme, kolik řádků, a 2 – jako procento. 70 tis. Řádků denně do tabulky o délce 1 m je hodně jiné než do tabulky o velikosti 500 m.
  • Doporučil bych použít něco jako ola.hallengren.com / … toto řešení pouze znovu sestavuje / reorganizuje a aktualizuje to, co je potřeba, tímto způsobem můžete zkrátit čas potřebný pro váš plán údržby a také ušetřit spoustu místa v protokolu .. / li>

Odpověď

Pokud pro ni nemáte okno údržby, je denní aktualizace statistik pravděpodobně trochu přehnaná . Zvláště pokud máte pro databázi zapnutou statistiku automatických aktualizací . Ve svém původním příspěvku jste uvedli, že uživatelům se kvůli tomuto plánu údržby zobrazuje snížení výkonu. Není čas na provedení této údržby plán? Žádné jiné okno? Vidím, že váš plán zahrnuje reorganizaci indexu, kdy znovu sestavujete indexy? Když k této operaci dojde, statistiky se automaticky aktualizují (za předpokladu, že není pro dex).

Přesná četnost aktualizace statistik závisí do značné míry na tom, jak velké úpravy dat vaše indexy a data přijímají . Pokud existuje velmi malá modifikace (INSERT, UPDATE, DELETE) dat, pak byste mohli mít méně častý plán úlohy statistiky statistik.

Jedním ze způsobů, jak zjistit, zda jsou vaše statistiky zastaralé, je podívat se na plány provádění a pokud se odhadované řádky výrazně liší od skutečných vrácených řádků pak to je dobrá indikace, že je třeba interval zvýšit. Ve vašem případě jdete opačným směrem a může být pro vás trochu zkouška. Statistiky aktualizujte každý týden, a pokud se vám začnou zobrazovat sdělovací známky zastaralých statistik, přejděte odtamtud.

Pokud ve své databázi používáte statistiku automatických aktualizací, prahovou hodnotu pro aktualizaci statistik naleznete v této referenci .

Komentáře

  • Indexy obnovujeme jednou týdně.
  • @ Onion-Knight Poté také jednou týdně aktualizujete statistiky, když obnovujete indexy . To by mohlo stačit, pokud ' provádíte plošné opětovné sestavení indexu v databázi.

Odpovědět

Kdy aktualizovat statistiku?

právě když statistik automatické aktualizace není pro vaše požadavky dostačující. Mám na mysli, pokud jsou statistiky automatického vytváření a automatické aktualizace ZAPNUTY a dostáváte špatný plán dotazů, protože statistiky nejsou přesné nebo aktuální, pak by mohl být dobrý nápad mít kontrolu nad tvorbou a aktualizací statistik. ale pokud vám vyhovuje výkon vašeho serveru sql a časy provádění dotazů.

doporučuji zastavit Statistiky aktualizací příkaz z plánů údržby

aktualizace statistik je důležitá a užitečná 1. umožňuje optimalizátoru dotazů serveru SQL Server konzistentně vytvářet dobré plány dotazů při zachování nízkých nákladů na vývoj a správu. 2. Statistiky používá optimalizátor dotazů odhadnout selektivitu výrazů, a tedy velikost mezilehlých a konečných výsledků dotazu. 3.Dobré statistiky umožňují optimalizátoru přesně posoudit náklady na různé plány dotazů a poté zvolit vysoce kvalitní plán.


Pokud chcete provést aktualizaci statistik ručně, měli byste nejprve znát Když jsou statistiky aktualizovány automaticky

Pokud optimalizátor dotazů serveru SQL Server vyžaduje statistiku pro konkrétní sloupec v tabulce, která prošla podstatnou aktualizací aktivita od posledního vytvoření nebo aktualizace statistik, SQL Server automaticky aktualizuje statistiky vzorkováním hodnot sloupců (pomocí statistik automatické aktualizace). Automatická aktualizace statistik je spuštěna optimalizací dotazu nebo provedením kompilovaného plánu a zahrnuje pouze podmnožinu sloupců uvedených v dotazu. Statistiky se aktualizují před kompilací dotazu, pokud je AUTO_UPDATE_STATISTCS_ASYNC VYPNUTO.

Zde jsou pěkné články, o kterých se mluví, když jsou na serveru SQL spuštěny statistiky aktualizací.

  1. from simple-talk Oddíl 13. Kdy je spuštěna automatická aktualizace statistik?
  2. support.microsoft Sekce: Automatizace stanovení autostatů
  3. msdn.microsoft sekce: Udržování statistik na serveru SQL Server 2008

poté, co zjistíte, kdy je statistika spuštěna, vám pomůže rozhodnout se, kdy aktualizovat statistiku ručně

a dozvědět se více o statistice & jejím vlivu na výkon doporučuji BrentOzar a Kimberly v sqlskills velmi dobré blogy & bloggeri .

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *