Создание статистики

Область применения: SQL Server 2022 (16.x) Управляемый экземпляр Базы данныхSQL Azure SQL Azure

Вы можете создать статистику оптимизации запросов для столбцов таблицы или индексированного представления в SQL Server с помощью SQL Server Management Studio или Transact-SQL. Для большинства запросов оптимизатор уже создает необходимую статистику для формирования высококачественного плана запроса, но в некоторых случаях нужно создавать дополнительные статистические данные.

ограничения

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

Каждый объект статистики может содержать до 32 столбцов.

Невозможно удалить, переименовать или изменить определение столбца таблицы, определенного в отфильтрованном предикате статистики.

Разрешения

Пользователь должен быть владельцем таблицы или индексированного представления либо членом одной из следующих ролей: предопределенная роль сервера sysadmin , предопределенная роль базы данных db_owner или предопределенная роль базы данных db_ddladmin .

Использование среды SQL Server Management Studio

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

  2. Чтобы развернуть папку Таблицы, выберите значок "плюс".

  3. Щелкните значок "плюс", чтобы развернуть таблицу, в которой хотите создать новую статистику.

  4. Щелкните правой кнопкой мыши папку Статистика и выберите пункт Создать статистику....

    На странице Общие в диалоговом окне Создание статистики по таблицеимя_таблицы отображаются указанные ниже свойства.

    Свойство Description
    Имя таблицы Отображает имя таблицы, которую описывает данная статистика.
    Имя статистики Отображает имя объекта базы данных, в котором сохранена статистика.
    Столбцы статистики Сетка отображает столбцы, описанные набором статистических данных. Все значения сетки доступны только для чтения.
    Наименование Отображает имя столбца, описываемого статистикой. Это может быть один столбец или комбинация столбцов одной таблицы.
    Тип данных Указывает тип данных столбцов, описываемых статистикой.
    Размер Отображает размер типа данных для каждого столбца.
    Identity Если флажок установлен, обозначает столбец идентификаторов.
    Разрешить значения NULL Указывает, допускает ли столбец значения NULL.
    Прибавить Добавьте дополнительные столбцы из таблицы в сетку статистики.
    Удалить Удалите выбранный столбец из сетки статистики.
    Вверх Переместите выбранный столбец ближе к началу сетки статистики. Расположение в сетке может существенно повлиять на полезность статистики.
    Вниз Переместить выбранный столбец ближе к концу сетки статистики.
    Статистика по этим столбцам была обновлена в последний раз Указывает давность статистики. Статистика представляет большую ценность, если она актуальна. Следует обновлять статистику после больших изменений в данных или после добавления нетипичных данных. Статистику для таблиц с равномерным распределением данных можно обновлять реже.
    Обновить статистику для этих столбцов Установите флажок для обновления статистики после закрытия диалогового окна.

    На странице Фильтр в диалоговом окне Создание статистики по таблицеимя_таблицы отображается указанное ниже свойство.

    Свойство Description
    Критерий фильтра Определяет столбцы данных, которые будут включены в статистику фильтрации. Пример: Production.ProductSubcategoryID IN ( 1, 2, 3 )
  5. В диалоговом окне "Новая статистика по таблицеtable_name" на странице "Общие" нажмите кнопку "Добавить".

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

    Свойство Описание
    Полное имя Отображает имя столбца, описываемого статистикой. Это может быть один столбец или комбинация столбцов одной таблицы.
    Тип данных Указывает тип данных столбцов, описываемых статистикой.
    Размер Отображает размер типа данных для каждого столбца.
    Identity Указывает на столбец идентификаторов, если этот параметр выбран.
    Разрешить значения NULL Указывает, допускает ли столбец значения NULL.
  6. В диалоговом окне "Выбор столбцов" установите флажок или флажки для каждого столбца, для которого требуется создать статистику, а затем нажмите кнопку "ОК".

  7. В диалоговом окне "Новая статистика по таблицеtable_name" нажмите кнопку "ОК".

Использование Transact-SQL

  1. В обозревателе объектов подключитесь к экземпляру ядра СУБД.

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить.

    USE AdventureWorks2022;
    GO
    -- Create new statistic object called ContactMail1
    -- on the BusinessEntityID and EmailPromotion columns in the Person.Person table.
    
    CREATE STATISTICS ContactMail1
        ON Person.Person (BusinessEntityID, EmailPromotion);
    GO
    
  4. Статистика, созданная выше, потенциально может улучшить результаты следующего запроса.

    USE AdventureWorks2022;
    GO
    SELECT LastName, FirstName
    FROM Person.Person
    WHERE EmailPromotion = 2
    ORDER BY LastName, FirstName;
    GO
    

Далее