Хранимая процедура sp_createstats (Transact-SQL)

Вызывает инструкцию CREATE STATISTICS для создания статистики по отдельным столбцам, ни один из которых не является первым столбцом в объекте статистики. Создание статистики по отдельным столбцам увеличивает число гистограмм, что может улучшить оценку количества элементов, усовершенствовать планы запросов и повысить производительность запросов. Первый столбец объекта статистики содержит гистограмму, а прочие — не содержат.

Процедуру sp_createstats удобно использовать для решения таких задач, как оценки производительности, когда существенно важно время выполнения запросов и недопустимо ожидание построения статистики по отдельным столбцам оптимизатором запросов. В большинстве случаев нет необходимости использовать процедуру sp_createstats, поскольку при включенном параметре AUTO_CREATE_STATISTICS оптимизатор запросов (если это необходимо) создает статистику по отдельным столбцам для усовершенствования планов запросов.

Дополнительные сведения о статистике см. в разделе Статистика. Дополнительные сведения о создании статистики по отдельным столбцам см. в описании параметра AUTO_CREATE_STATISTICS в разделе Параметры ALTER DATABASE SET (Transact-SQL).

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

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

sp_createstats 
    [   [ @indexonly =   ] { 'indexonly'   | 'NO' } ] 
    [ , [ @fullscan =    ] { 'fullscan'    | 'NO' } ] 
    [ , [ @norecompute = ] { 'norecompute' | 'NO' } ]
    [ , [ @incremental = ] { 'incremental' | 'NO' } ]

Аргументы

  • [ @indexonly= ] 'indexonly'
    Создает статистику только по столбцам, которые входят в существующий индекс, причем ни один из столбцов не должен быть первым столбцом в определении индекса. Аргумент indexonly имеет тип char(9). Значение по умолчанию — NO.

  • [ @fullscan= ] 'fullscan'
    Использует инструкцию CREATE STATISTICS с параметром FULLSCAN. Аргумент fullscan имеет тип char(9). Значение по умолчанию — NO.

  • [ @norecompute= ] 'norecompute'
    Использует инструкцию CREATE STATISTICS с параметром NORECOMPUTE. Аргумент norecompute имеет тип char(12). Значение по умолчанию — NO.

  • [ @incremental= ] 'incremental'
    Использует инструкцию CREATE STATISTICS с параметром INCREMENTAL = ON. Аргумент Incremental имеет тип char(12). Значение по умолчанию — NO.

    Применимо для следующих объектов: SQL Server (начиная с SQL Server 2014 до текущей версии).

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы

Каждая новая статистика имеет имя, совпадающее со столбцом, по которому она создается.

Замечания

Процедура sp_createstats не создает и не обновляет статистику по столбцам, которые входят первыми в существующие объекты статистики. Это относится и к первому столбцу статистики для индексов, столбцам со статистикой по отдельным столбцам, созданным параметром AUTO_CREATE_STATISTICS, и первому столбцу статистики, созданному инструкцией CREATE STATISTICS. Хранимая процедура sp_createstats не создает статистику в первых столбцах отключенных индексов, если только указанные столбцы не будут задействованы другим включенным индексом. Процедура sp_createstats не может создавать статистику в таблицах с отключенными кластеризованными индексами.

Если таблица содержит набор столбцов, то хранимая процедура sp_createstats не создает статистику по разреженным столбцам. Дополнительные сведения о наборах столбцов и разреженных столбцах см. в разделах Использование наборов столбцов и Использование разреженных столбцов.

Разрешения

Необходимо членство в предопределенной роли базы данных db_owner.

Примеры

А.Создание статистики по отдельным столбцам для всех подходящих столбцов

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

EXEC sp_createstats;
GO

Б.Создание статистики по отдельным столбцам для всех подходящих столбцов индекса

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

EXEC sp_createstats 'indexonly';
GO

См. также

Справочник

CREATE STATISTICS (Transact-SQL)

Параметры ALTER DATABASE SET (Transact-SQL)

Инструкция DBCC SHOW_STATISTICS (Transact-SQL)

DROP STATISTICS (Transact-SQL)

UPDATE STATISTICS (Transact-SQL)

Хранимые процедуры ядра СУБД (Transact-SQL)

Системные хранимые процедуры (Transact-SQL)

Основные понятия

Статистика