Freigeben über


sp_updatestats (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank

Wird für alle benutzerdefinierten und internen Tabellen in der aktuellen Datenbank ausgeführt UPDATE STATISTICS .

Weitere Informationen finden UPDATE STATISTICSSie unter UPDATE STATISTICS. Weitere Informationen zu Statistiken finden Sie unter Statistik.

Transact-SQL-Syntaxkonventionen

Syntax

sp_updatestats [ [ @resample = ] 'resample' ]

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Argumente

[ @resample = ] 'resample'

Gibt an, dass sp_updatestats die RESAMPLE Option der UPDATE STATISTICS -Anweisung verwendet wird. Wenn resample nicht angegeben, sp_updatestats aktualisiert die Statistik mithilfe des Standardsamplings. Das resample Argument ist varchar(8) mit einem Standardwert von NO.

Hinweise

sp_updatestatsführt durch Angeben des ALL Schlüsselworts UPDATE STATISTICSfür alle benutzerdefinierten und internen Tabellen in der Datenbank aus. sp_updatestats zeigt Meldungen an, die ihren Fortschritt angeben. Wenn das Update abgeschlossen ist, wird gemeldet, dass Statistiken für alle Tabellen aktualisiert werden.

sp_updatestats aktualisiert Statistiken zu deaktivierten nicht gruppierten Indizes und aktualisiert keine Statistiken zu deaktivierten gruppierten Indizes.

Aktualisiert bei datenträgerbasierten Tabellen sp_updatestats Statistiken basierend auf den modification_counter Informationen in der sys.dm_db_stats_properties Katalogansicht, wobei Statistiken aktualisiert werden, in denen mindestens eine Zeile geändert wird. Statistiken zu speicheroptimierten Tabellen werden bei der Ausführung sp_updatestatsimmer aktualisiert. Führen Sie daher nicht mehr als erforderlich aus sp_updatestats .

sp_updatestats kann eine erneute Kompilierung gespeicherter Prozeduren oder eines anderen kompilierten Codes auslösen. sp_updatestats Kann jedoch keine erneute Kompilierung verursachen, wenn nur ein Abfrageplan für die Tabellen, auf die verwiesen wird, und die Indizes dafür möglich ist. Eine Neukompilierung wäre in diesen Fällen nicht erforderlich, selbst wenn die Statistiken aktualisiert werden.

sp_updatestats behält die neueste NORECOMPUTE Option für bestimmte Statistiken bei. Weitere Informationen zum Deaktivieren und erneuten Aktivieren von Statistikupdates finden Sie unter Statistiken.

Beim Wiederherstellen einer Datenbank in SQL Server 2022 (16.x) aus einer früheren Version sollten Sie die Datenbank ausführen sp_updatestats . Dies bezieht sich auf das Festlegen der richtigen Metadaten für das Feature für das automatische Ablegen von Statistiken, das in SQL Server 2022 (16.x) eingeführt wurde. Das Feature zum automatischen Ablegen ist in Azure SQL-Datenbank, Azure SQL verwaltete Instanz und ab SQL Server 2022 (16.x) verfügbar.

Berechtigungen

Für SQL Server müssen Sie der Besitzer der Datenbank (dbo) oder ein Mitglied der festen Serverrolle "sysadmin " sein.

Für Azure SQL-Datenbank müssen Sie Mitglied der db_owner festen Datenbankrolle sein.

Beispiele

Im folgenden Beispiel werden die Statistiken für alle Tabellen aktualisiert, die die Datenbank enthält:

USE AdventureWorks2022;
GO
EXEC sp_updatestats;

Automatische Verwaltung von Index und Statistiken

Nutzen Sie Lösungen wie Adaptive Index Defrag, um die Indexdefragmentierung und das Aktualisieren der Statistiken für eine oder mehrere Datenbanken automatisch zu verwalten. Diese Vorgehensweise entscheidet unter anderem anhand des Fragmentierungsgrads automatisch, ob ein Index neu erstellt oder neu organisiert wird, und aktualisiert Statistiken mit einem linearen Schwellenwert.