Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LektsiiNovye.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.92 Mб
Скачать

Команда create statistics

Статистику по определённым колонкам таблицы можно создавать вручную с помощью оператора T-SQL CREATE STATISTICS. Создание статистики вручную отличается от автоматического создания в том, что оно позволяет объединять несколько колонок, генерируя для комбинации колонок такую информацию, как среднее количество дублированных значений и отличающихся значений. Команда CREATE STATISTICS имеет следующий синтаксис:

CREATE STATISTICS <statistic_name> ON

<table_name> ( <column_name> [ , <column_name>... ] )

[ [WITH [ FULLSCAN | SAMPLE <size> PERCENT ]

[ , NORECOMPUTE ]

В синтаксе команд есть следующие ограничения: для статистики нельзя указывать расчётные колонки или колонки с типом данных ntext, text или image. Параметр FULLSCAN означает полное сканирование. SAMPLE – выборку данных. Для полного сканирования требуется больше времени, чем для выборки, поскольку сканируется каждая строка таблицы, но результаты могут оказаться более точными. Используя выборку, вы должны указать процент данных, включаемых в выборку. Ключевое слово NORECOMPUTE указывает, что автоматическое обновление этой статистики отключено, что позволяет использовать статистику, которая уже не отражает текущее состояние данных.

Следующий пример создаёт статистику по колонкам Имя и Фамилия таблицы Сотрудники базы данных МояБаза для поиска сотрудника по имени и фамилии:

CREATE STATISTICS Имя

ON МояБаза.Сотрудники (Имя, Фамилия)

WITH FULLSCAN, NORECOMPUTE

Этот оператор рассчитывает статистику для всех строк колонок Имя и Фамилия и отключает автоматический перерасчёт статистики.

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

Процедура sp_createstats

Данная хранимая процедура создаёт статистику для всех колонок, по которым статистика ещё не создана. Каждый набор статистики будет создан по какой-либо одной колонке. Процедура sp_createstats имеет следующий синтаксис:

sp_createstats [ 'indexonly' ] [ , 'fullscan' ] [ , 'norecompute' ]

Параметр indexonly указывает, что статистика будет создана только по колонкам, включаемым в индекс. Параметр fullscan указывает, что будет выполнено полное сканирование всех строк, а не случайная выборка; иначе говоря, будет использована выборка 100 процентов данных. Параметр norecompute указывает, что по этой новой статистике будет отключено автоматическое обновление статистики. Новой статистике присваивается имя колонки, по которой она создаётся.

Команда update statistics

По умолчанию SQL Server автоматически обновляет статистику. Эту возможность можно отключить с помощью команды UPDATE STATISTICS и затем обновлять статистику вручную, чтобы она соответствовала текущему состоянию данных. Эта команда позволяет обновлять статистику по индексированным колонкам и неиндексированным колонкам. Возможно создать сценарий, который будет выполнять команду UPDATE STATISTICS для наиболее часто модифицируемых таблиц, и затем периодически запускать этот сценарий как задание SQL Server. Это позволит поддерживать статистику в соответствии с текущим состоянием данных и поддерживать более высокую производительность запросов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]