sql >> Databáze >  >> RDS >> Sqlserver

Proč jsou tyto statistiky SQL Serveru zastaralé, když je nastavena na automatickou aktualizaci?

I když nastavíte statistiky automatické aktualizace na hodnotu true, aktualizují se pouze po dosažení prahové hodnoty. To se liší pro různé verze

Hranice pro SQL Server 2012 nebo starší:

  1. Velikost tabulky se změnila z 0 na> 0 řádků

  2. Počet řádků v tabulce při shromažďování statistik byl 500 nebo méně a colmodctr úvodního sloupce objektu statistiky se od té doby změnil o více než 500

  3. Tabulka měla při shromažďování statistik více než 500 řádků a colmodctr úvodního sloupce objektu statistiky se změnil o více než 500 + 20 % počtu řádků v tabulce, když byly statistiky shromážděny

Pro SQLServer 2016 existuje několik zásadních změn a statistiky aktualizací SQL s novým algoritmem (čtěte častěji než staré verze)

Normálně lidé plánují úlohy údržby během víkendů a to zahrnuje přestavbu indexu/aktualizaci statistik..

To by se normálně mělo postarat o většinu databází. Pokud ve vašem případě zaznamenáváte problémy s výkonem kvůli neplatným statistikám, můžete je aktualizovat ručně. Děláme to jednou týdně, ale weby jako StackOverflow to dělají častěji

update stats tablename

Další četba/odkazy:
Statistiky používané nástrojem Query Optimizer v Microsoft SQL Server 2008
Vysvětlení, kdy se statistiky budou automaticky aktualizovat




  1. Každá odvozená tabulka musí mít svůj vlastní alias - chyba z kombinace sestupně MySQL

  2. Proč je Solr o tolik rychlejší než Postgres?

  3. Vrátí počet řádků ovlivněných příkazem SQL UPDATE v Javě

  4. MySQL nastavilo hodnotu AUTO_INCREMENT na MAX(id) + 1 zkratka?