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


Обновите статистику

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

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

Обновление статистики гарантирует, что запросы будут компилироваться с актуальной статистикой. Однако обновление статистики вызывает перекомпиляцию запросов. Мы рекомендуем не обновлять статистику слишком часто, так как между улучшением планов запросов и временем повторной компиляции запросов возникает компромисс. Критерии выбора компромиссного решения зависят от приложения. UPDATE STATISTICS может использовать tempdb для сортировки примеров строк, чтобы создать статистику.

Разрешения

При использовании UPDATE STATISTICS или внесении изменений в SQL Server Management Studio требуется разрешение ALTER в таблице или представлении. При использовании процедуры sp_updatestatsнеобходимо быть членом предопределенной роли сервера sysadmin или владельцем базы данных (dbo).

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

Обновление объекта статистики

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

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

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

  4. Выберите знак "плюс", чтобы развернуть папку "Статистика ".

  5. Щелкните правой кнопкой мыши объект статистики, который нужно обновить, и выберите пункт Свойства.

  6. В диалоговом окне "Свойства статистики- statistics_name" установите флажок "Обновить статистику для этих столбцов" и нажмите кнопку "ОК".

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

Обновление определенного объекта статистики

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

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

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

    USE AdventureWorks2022;
    GO
    -- The following example updates the statistics for the AK_SalesOrderDetail_rowguid index of the SalesOrderDetail table.
    UPDATE STATISTICS Sales.SalesOrderDetail AK_SalesOrderDetail_rowguid;
    GO
    

Обновление всей статистики в таблице

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

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

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

    USE AdventureWorks2022;
    GO
    -- The following example updates the statistics for all indexes on the SalesOrderDetail table.
    UPDATE STATISTICS Sales.SalesOrderDetail;
    GO
    

Дополнительные сведения см. в разделе UPDATE STATISTICS.

Обновление всей статистики в базе данных

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

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

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

    USE AdventureWorks2022;
    GO
    -- The following example updates the statistics for all tables in the database.
    EXEC sp_updatestats;
    

Автоматическое управление индексами и статистикой

Используйте такие решения, как адаптивный дефрагмент индекса, чтобы автоматически управлять дефрагментацией индекса и обновлениями статистики для одной или нескольких баз данных. Эта процедура автоматически выбирает, следует ли перестроить или реорганизовать индекс в соответствии с уровнем фрагментации, среди других параметров, а также обновлять статистику с линейным пороговым значением.