Хранимая процедура sp_createstats (Transact-SQL)
Вызывает инструкцию CREATE STATISTICS для создания статистики по отдельным столбцам, ни один из которых не является первым столбцом в объекте статистики. Создание статистики по отдельным столбцам увеличивает число гистограмм, что может улучшить оценку количества элементов, усовершенствовать планы запросов и повысить производительность запросов. Первый столбец объекта статистики содержит гистограмму, а прочие — не содержат.
Процедура sp_createstats полезна для таких задач, как тестирование производительности, когда существенно важно время выполнения запросов и недопустимо ожидание построения статистики по отдельным столбцам оптимизатором запросов. В большинстве случаев нет необходимости использовать процедуру sp_createstats, поскольку при включенном параметре AUTO_CREATE_STATISTICS оптимизатор запросов (если это необходимо) создает статистику по отдельным столбцам для усовершенствования планов запросов.
Дополнительные сведения о статистике см. в разделе Использование статистики для повышения производительности запросов. Дополнительные сведения о создании статистики по отдельным столбцам см. в описании параметра AUTO_CREATE_STATISTICS в разделе Параметры ALTER DATABASE SET (Transact-SQL).
Синтаксис
sp_createstats [ [ @indexonly = ] 'indexonly' ]
[ , [ @fullscan = ] 'fullscan' ]
[ , [ @norecompute = ] 'norecompute' ]
Аргументы
[ @indexonly= ] 'indexonly'
Создает статистику только по столбцам, которые входят в существующий индекс, причем ни один из столбцов не должен быть первым столбцом в определении индекса. Аргумент indexonly имеет тип char(9). Значение по умолчанию — NO.[ @fullscan= ] 'fullscan'
Использует инструкцию CREATE STATISTICS с параметром FULLSCAN. Аргумент fullscan имеет тип char(9). Значение по умолчанию — NO.[ @norecompute= ] 'norecompute'
Использует инструкцию CREATE STATISTICS с параметром NORECOMPUTE. Аргумент norecompute имеет тип char(12). Значение по умолчанию — NO.
Значения кода возврата
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
См. также