Sdílet prostřednictvím


sp_updatestats (Transact-SQL)

Platí na:SQL ServerAzure SQL DatabaseSQL databáze v Microsoft Fabric

Spouští UPDATE STATISTICS se proti všem uživatelsky definovaným a interním tabulkám v aktuální databázi.

Další informace o UPDATE STATISTICSnástroji UPDATE STATISTICS naleznete v tématu AKTUALIZACE STATISTIKY. Další informace o statistikách naleznete v tématu Statistika.

Transact-SQL konvence syntaxe

Syntaxe

sp_updatestats [ [ @resample = ] 'resample' ]

Hodnoty návratového kódu

0 (úspěch) nebo 1 (selhání).

Argumenty

[ @resample = ] 'převzorkování'

Určuje, že sp_updatestats používá RESAMPLE možnost PŘÍKAZU UPDATE STATISTICS . Pokud resample není zadáno, sp_updatestats aktualizuje statistiky pomocí výchozího vzorkování. Argument resample je varchar(8) s výchozí hodnotou NO.

Poznámky

sp_updatestats UPDATE STATISTICSspustí se zadáním klíčového ALL slova ve všech uživatelem definovaných a interních tabulkách v databázi. sp_updatestats zobrazí zprávy, které označují jeho průběh. Po dokončení aktualizace hlásí, že se statistiky aktualizují pro všechny tabulky.

sp_updatestats aktualizuje statistiky o zakázaných neclusterovaných indexech a neaktualizuje statistiky u zakázaných clusterovaných indexů.

V případě tabulek sp_updatestats založených na disku aktualizuje statistiky na modification_counter základě informací v zobrazení katalogu sys.dm_db_stats_properties a aktualizuje se statistika, kde se upraví aspoň jeden řádek. Statistiky pro tabulky optimalizované pro paměť jsou při provádění vždy aktualizovány sp_updatestats. Proto se nespustí sp_updatestats víc, než je potřeba.

sp_updatestats může aktivovat rekompilace uložených procedur nebo jiného zkompilovaného kódu. Pokud je však možné použít pouze jeden plán dotazu pro tabulky odkazované na tabulky a indexy na ně, sp_updatestats nemusí být příčinou rekompilování. Rekompilace by v těchto případech byla zbytečná, i když se aktualizují statistiky.

sp_updatestats zachovává nejnovější NORECOMPUTE možnost pro konkrétní statistiky. Další informace o zakázání a opětovném povolení aktualizací statistik najdete v tématu Statistika.

Při obnovování databáze na SQL Server 2022 (16.x) z předchozí verze byste měli provést sp_updatestats databázi. To souvisí s nastavením správných metadat pro funkci automatického poklesu statistik zavedených v SYSTÉMU SQL Server 2022 (16.x). Ve službě Azure SQL Database, Azure SQL Managed Instance a SQL Serveru 2022 (16.x) a novějších verzích se automaticky vytvářejí statistiky, jako by byla nastavena AUTO_DROP .

Povolení

Pro SQL Server musíte být vlastníkem databáze (dbo) nebo členem pevné role serveru správce systému .

Pro Azure SQL Database musíte být členem db_owner pevné databázové role.

Příklady

Následující příklad aktualizuje statistiky pro všechny tabulky databáze:

USE AdventureWorks2022;
GO

EXECUTE sp_updatestats;

Automatická správa indexů a statistik

Pomocí řešení, jako je Adaptivní index Defrag, můžete automaticky spravovat defragmentaci indexu a aktualizace statistik pro jednu nebo více databází. Tento postup automaticky zvolí, zda se má index znovu sestavit nebo znovu uspořádat podle úrovně fragmentace, mimo jiné parametry, a aktualizovat statistiky lineární prahovou hodnotou.