Aktualizowanie statystyk
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database w usłudze Microsoft Fabric
Statystyki optymalizacji zapytań można aktualizować w tabeli lub widoku indeksowanym w programie SQL Server przy użyciu programu SQL Server Management Studio lub Języka Transact-SQL. Domyślnie optymalizator zapytań aktualizuje już statystyki w razie potrzeby w celu ulepszenia planu zapytania; w niektórych przypadkach można poprawić wydajność zapytań przy użyciu UPDATE STATISTICS
lub procedury składowanej sp_updatestats
aktualizować statystyki częściej niż aktualizacje domyślne.
Aktualizowanie statystyk zapewnia kompilowanie zapytań przy użyciu statystyk opartych na dacie up-to. Jednak aktualizowanie statystyk powoduje ponowne skompilowania zapytań. Zalecamy niezbyt częste aktualizowanie statystyk, ponieważ występuje kompromis między ulepszaniem planów zapytań a czasem ponownego kompilowania zapytań. Konkretne kompromisy zależą od aplikacji.
UPDATE STATISTICS
może użyć tempdb
, aby posortować próbkę wierszy do tworzenia statystyk.
Uprawnienia
W przypadku używania UPDATE STATISTICS
lub wprowadzania zmian za pomocą programu SQL Server Management Studio konieczne jest posiadanie uprawnienia ALTER w tabeli lub widoku. Jeśli używasz sp_updatestats
, wymaga członkostwa w sysadmin stałej roli serwera lub własności bazy danych (dbo).
Korzystanie z programu SQL Server Management Studio
Aktualizowanie obiektu statystyk
W Eksplorator obiektówwybierz znak plus, aby rozwinąć bazę danych, w której chcesz zaktualizować statystykę.
Wybierz znak plus, aby rozwinąć folder Tables.
Wybierz znak plus, aby rozwinąć tabelę, w której chcesz zaktualizować statystykę.
Wybierz znak plus, aby rozwinąć folder Statistics.
Kliknij prawym przyciskiem myszy obiekt statystyk, który chcesz zaktualizować, a następnie wybierz Właściwości.
W oknie dialogowym Właściwości statystyk –statistics_name zaznacz pole wyboru Aktualizuj statystyki dla tych kolumn, a potem kliknij OK.
Użyj Transact-SQL
Aktualizowanie określonego obiektu statystyk
W Eksploratorze Obiektów, nawiąż połączenie z wystąpieniem Silnika baz danych.
Na pasku Standardowa wybierz pozycję Nowe zapytanie.
Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj.
USE AdventureWorks2022; GO -- The following example updates the statistics for the AK_SalesOrderDetail_rowguid index of the SalesOrderDetail table. UPDATE STATISTICS Sales.SalesOrderDetail AK_SalesOrderDetail_rowguid; GO
Aktualizowanie wszystkich statystyk w tabeli
W Eksploratorze obiektów nawiąż połączenie z wystąpieniem aparatu bazy danych.
Na pasku Standardowym wybierz pozycję Nowe zapytanie.
Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj.
USE AdventureWorks2022; GO -- The following example updates the statistics for all indexes on the SalesOrderDetail table. UPDATE STATISTICS Sales.SalesOrderDetail; GO
Aby uzyskać więcej informacji, zobacz UPDATE STATISTICS.
Aktualizowanie wszystkich statystyk w bazie danych
W Eksploratorze obiektów nawiąż połączenie z wystąpieniem silnika bazy danych.
Na pasku standardowym wybierz opcję Nowe zapytanie.
Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj.
USE AdventureWorks2022; GO -- The following example updates the statistics for all tables in the database. EXEC 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.