Dela via


sp_updatestats (Transact-SQL)

gäller för:SQL ServerAzure SQL Database

Körs UPDATE STATISTICS mot alla användardefinierade och interna tabeller i den aktuella databasen.

Mer information om UPDATE STATISTICSfinns i UPPDATERA STATISTIK. Mer information om statistik finns i Statistics.

Transact-SQL syntaxkonventioner

Syntax

sp_updatestats [ [ @resample = ] 'resample' ]

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Argumentpunkter

[ @resample = ] "omsampling"

Anger som sp_updatestats använder RESAMPLE alternativet för UPDATE STATISTICS-instruktionen . Om resample inte har angetts sp_updatestats uppdaterar du statistiken med hjälp av standardsampling. Argumentet resample är varchar(8) med standardvärdet NO.

Anmärkningar

sp_updatestats UPDATE STATISTICSkör , genom att ange nyckelordet ALL i alla användardefinierade och interna tabeller i databasen. sp_updatestats visar meddelanden som anger dess förlopp. När uppdateringen är klar rapporterar den att statistiken uppdateras för alla tabeller.

sp_updatestats uppdaterar statistik för inaktiverade icke-grupperade index och uppdaterar inte statistik för inaktiverade klustrade index.

För diskbaserade tabeller sp_updatestats uppdaterar statistik baserat på modification_counter informationen i sys.dm_db_stats_properties katalogvy och uppdaterar statistik där minst en rad ändras. Statistik för minnesoptimerade tabeller uppdateras alltid när du sp_updatestatskör . Kör därför inte sp_updatestats mer än nödvändigt.

sp_updatestats kan utlösa en omkompilering av lagrade procedurer eller annan kompilerad kod. Det kan dock sp_updatestats inte orsaka någon omkompilering, om endast en frågeplan är möjlig för de tabeller som refereras till och indexen på dem. En omkompilering skulle vara onödig i dessa fall även om statistiken uppdateras.

sp_updatestats bevarar det senaste NORECOMPUTE alternativet för specifik statistik. Mer information om hur du inaktiverar och återaktivera statistikuppdateringar finns i Statistik.

När du återställer en databas till SQL Server 2022 (16.x) från en tidigare version bör du köra sp_updatestats på databasen. Detta gäller att ställa in rätt metadata för funktionen automatisk borttagning av statistik som introducerades i SQL Server 2022 (16.x). I Azure SQL Database, Azure SQL Managed Instance och SQL Server 2022 (16.x) och senare versioner fungerar automatiskt statistik som om AUTO_DROP har angetts.

Behörigheter

För SQL Server måste du vara ägare till databasen (dbo) eller medlem i den fasta serverrollen sysadmin .

För Azure SQL Database måste du vara medlem i db_owner fast databasroll.

Exempel

I följande exempel uppdateras statistiken för alla tabeller i databasen:

USE AdventureWorks2022;
GO

EXECUTE sp_updatestats;

Automatisk index- och statistikhantering

Använd lösningar som Adaptive Index Defrag för att automatiskt hantera indexdefragmentering och statistikuppdateringar för en eller flera databaser. Den här proceduren väljer automatiskt om du vill återskapa eller omorganisera ett index enligt dess fragmenteringsnivå, bland andra parametrar, och uppdatera statistik med ett linjärt tröskelvärde.