sp_updatestats (Transact-SQL)
Область применения: SQL Server База данных SQL Azure
Выполняется UPDATE STATISTICS
для всех определяемых пользователем и внутренних таблиц в текущей базе данных.
Дополнительные сведения см. в UPDATE STATISTICS
разделе UPDATE STATISTICS (Transact-SQL). Дополнительные сведения о статистике см. в статье Статистика.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_updatestats [ [ @resample = ] 'resample' ]
Значения кода возврата
0
(успешно) или 1
(сбой).
Аргументы
[ @resample = ] 'resample'
Указывает, что sp_updatestats
использует RESAMPLE
параметр инструкции UPDATE STATISTICS . Если resample
это не указано, sp_updatestats
обновляет статистику с помощью выборки по умолчанию. Аргумент resample
— varchar(8) со значением NO
по умолчанию.
Замечания
sp_updatestats
UPDATE STATISTICS
выполняется путем указания ключевого ALL
слова во всех пользовательских и внутренних таблицах в базе данных. sp_updatestats
отображает сообщения, указывающие на ход выполнения. После завершения обновления сообщается, что статистика обновляется для всех таблиц.
sp_updatestats
обновляет статистику отключенных некластеризованных индексов и не обновляет статистику отключенных кластеризованных индексов.
Для таблиц sp_updatestats
на основе дисков обновляет статистику на modification_counter
основе сведений в представлении каталога sys.dm_db_stats_properties , обновляя статистику, в которой изменяется по крайней мере одна строка. Статистика по оптимизированным для памяти таблицам всегда обновляется при выполнении sp_updatestats
. Поэтому не выполняйте sp_updatestats
больше, чем необходимо.
sp_updatestats
может активировать перекомпилировать хранимые процедуры или другой скомпилированный код. sp_updatestats
Однако может не вызвать повторную компиляцию, если только один план запроса возможен для таблиц, на которые ссылается ссылка, и индексов на них. Повторная компиляция в этих случаях будет не нужна даже при обновлении статистики.
sp_updatestats
сохраняет последний NORECOMPUTE
параметр для конкретной статистики. Дополнительные сведения об отключении и повторном включении обновления статистики см. в разделе Статистика.
При восстановлении базы данных в SQL Server 2022 (16.x) из предыдущей версии необходимо выполнить sp_updatestats
в базе данных. Это связано с настройкой соответствующих метаданных для функции автоматического удаления статистики, представленной в SQL Server 2022 (16.x). Функция автоматического удаления доступна в База данных SQL Azure, Управляемый экземпляр SQL Azure и начиная с SQL Server 2022 (16.x).
Разрешения
Для SQL Server необходимо быть владельцем базы данных (dbo) или членом предопределенных ролей сервера sysadmin .
Для База данных SQL Azure необходимо быть членом предопределенных ролей базы данных db_owner.
Примеры
В следующем примере обновляется статистика для всех таблиц базы данных:
USE AdventureWorks2022;
GO
EXEC sp_updatestats;
Автоматическое управление индексами и статистикой
Используйте такие решения, как адаптивный дефрагмент индекса, чтобы автоматически управлять дефрагментацией индекса и обновлениями статистики для одной или нескольких баз данных. Эта процедура автоматически выбирает, следует ли перестроить или реорганизовать индекс в соответствии с уровнем фрагментации, среди других параметров, а также обновлять статистику с линейным пороговым значением.
Связанный контент
- Системные хранимые процедуры (Transact-SQL)
- Параметры ALTER DATABASE SET (Transact SQL)
- CREATE STATISTICS (Transact-SQL)
- DBCC SHOW_STATISTICS (Transact-SQL)
- DROP STATISTICS (Transact-SQL)
- sp_autostats (Transact-SQL)
- sp_createstats (Transact-SQL)
- sys.dm_db_stats_properties
- UPDATE STATISTICS (Transact-SQL)