sp_updatestats (Transact-SQL)

Запускает инструкцию UPDATE STATISTICS для всех пользовательских и внутренних таблиц в текущей базе данных.

Дополнительные сведения об инструкции UPDATE STATISTICS см. в разделе UPDATE STATISTICS (Transact-SQL). Дополнительные сведения о статистике см. в разделе Статистика.

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Значок ссылки на раздел Cинтаксические обозначения в 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 чаще, чем это необходимо.

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

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

Разрешения

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

Примеры

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

USE AdventureWorks2012;
GO
EXEC sp_updatestats; 

См. также

Справочник

Параметры 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)

UPDATE STATISTICS (Transact-SQL)

Системные хранимые процедуры