Поделиться через


sp_updatestats (Transact-SQL)

Запускает инструкцию 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 обновляет только статистику, требующую обновления, основываясь на данных столбца rowmodctr в представлении каталога sys.sysindexes. Таким образом, предотвращаются ненужные обновления статистики по неизмененным строкам.

Процедура sp_updatestats может запустить повторную компиляцию хранимых процедур или другого откомпилированного кода. Однако sp_updatestats может не запустить повторную компиляцию, если для целевых таблиц и индексов в них доступен только один план запроса. Повторная компиляция в этих случаях будет не нужна даже при обновлении статистики.

Для баз данных с уровнем совместимости ниже 90 выполнение процедуры sp_updatestats не сохраняет последнее значение параметра NORECOMPUTE для заданной статистики. Для баз данных с уровнем совместимости 90 и выше процедура sp_updatestats сохраняет последнее значение параметра NORECOMPUTE для заданной статистики. Дополнительные сведения об отключении и повторном включении обновления статистики см. в разделе Использование статистики для повышения производительности запросов.

Разрешения

Необходимо быть членом предопределенной роли сервера sysadmin или владельцем базы данных (dbo).

Примеры

В следующем примере обновляется статистика для таблиц в базе данных AdventureWorks2008R2.

USE AdventureWorks2008R2;
GO
EXEC sp_updatestats