Udostępnij za pośrednictwem


sp_updatestats (Transact-SQL)

Dotyczy:programu SQL ServerAzure SQL Database

Uruchamia wszystkie UPDATE STATISTICS tabele zdefiniowane przez użytkownika i wewnętrzne w bieżącej bazie danych.

Aby uzyskać więcej informacji na temat UPDATE STATISTICSprogramu , zobacz UPDATE STATISTICS (STATYSTYKI AKTUALIZACJI). Aby uzyskać więcej informacji na temat statystyk, zobacz Statistics.

Transact-SQL konwencje składni

Składnia

sp_updatestats [ [ @resample = ] 'resample' ]

Zwracanie wartości kodu

0 (powodzenie) lub 1 (niepowodzenie).

Argumenty (w programowaniu)

[ @resample = ] 'resample'

Określa, że sp_updatestats używa RESAMPLE opcji instrukcji UPDATE STATISTICS . Jeśli resample nie zostanie określony, sp_updatestats zaktualizuj statystyki przy użyciu domyślnego próbkowania. Argument resample to varchar(8) z wartością NOdomyślną .

Uwagi

sp_updatestats UPDATE STATISTICSwykonuje polecenie , określając ALL słowo kluczowe we wszystkich tabelach zdefiniowanych przez użytkownika i wewnętrznych w bazie danych. sp_updatestats wyświetla komunikaty wskazujące jego postęp. Po zakończeniu aktualizacji raportuje, że statystyki są aktualizowane dla wszystkich tabel.

sp_updatestats aktualizuje statystyki dotyczące wyłączonych indeksów nieklastrowanych i nie aktualizuje statystyk wyłączonych indeksów klastrowanych.

W przypadku tabel opartych na dyskach sp_updatestats aktualizuje statystyki na modification_counter podstawie informacji w widoku wykazu sys.dm_db_stats_properties , aktualizując statystyki, w których co najmniej jeden wiersz jest modyfikowany. Statystyki dotyczące tabel zoptymalizowanych pod kątem pamięci są zawsze aktualizowane podczas wykonywania polecenia sp_updatestats. W związku z tym nie należy wykonywać sp_updatestats więcej niż jest to konieczne.

sp_updatestats może wyzwolić ponowną kompilację procedur składowanych lub innego skompilowanego kodu. sp_updatestats Jednak może nie spowodować ponownego skompilowania, jeśli tylko jeden plan zapytania jest możliwy dla tabel, do których się odwołuje i do nich indeksy. Ponowna kompilacja byłaby niepotrzebna w takich przypadkach, nawet jeśli statystyki zostaną zaktualizowane.

sp_updatestats Zachowuje najnowszą NORECOMPUTE opcję dla określonych statystyk. Aby uzyskać więcej informacji na temat wyłączania i ponownego włączania aktualizacji statystyk, zobacz Statystyki.

Podczas przywracania bazy danych do programu SQL Server 2022 (16.x) z poprzedniej wersji należy wykonać polecenie sp_updatestats w bazie danych. Jest to związane z ustawieniem odpowiednich metadanych dla funkcji automatycznego upuszczania statystyk wprowadzonych w programie SQL Server 2022 (16.x). W usługach Azure SQL Database, Azure SQL Managed Instance i SQL Server 2022 (16.x) i nowszych wersjach automatycznie utworzone statystyki zawsze zachowują się tak, jakby ustawiono AUTO_DROP .

Uprawnienia

W przypadku programu SQL Server musisz być właścicielem bazy danych (dbo) lub członkiem stałej roli serwera sysadmin .

W przypadku usługi Azure SQL Database musisz być członkiem stałej roli bazy danych db_owner .

Przykłady

Poniższy przykład aktualizuje statystyki dla wszystkich tabel bazy danych:

USE AdventureWorks2022;
GO

EXECUTE sp_updatestats;

Automatyczne zarządzanie indeksami i statystykami

Użyj rozwiązań, takich jak Adaptive Index Defrag, aby automatycznie zarządzać defragmentacją indeksu i aktualizacjami statystyk dla jednej lub więcej baz danych. Ta procedura automatycznie wybiera, czy należy ponownie skompilować lub zreorganizować indeks zgodnie z poziomem fragmentacji, między innymi parametrami, oraz zaktualizować statystyki z progiem liniowym.