Поделиться через


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

Область применения: 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. Щелкните правой кнопкой мыши папку Статистика и выберите пункт Создать статистику....

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

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

    Следующее свойство отображается на странице фильтра в диалоговом окне "Новая статистика по таблице table_name ".

    Свойство 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
    

Следующие шаги