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

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse AnalyticsAnalytics 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. В диалоговом окне Свойства статистики —имя_статистики установите флажок Обновить статистику для этих столбцов и нажмите кнопку ОК.

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

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

  1. В обозревателе объектовподключитесь к экземпляру компонента Компонент Database Engine.

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

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

    USE AdventureWorks2012;  
    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. В обозревателе объектовподключитесь к экземпляру компонента Компонент Database Engine.

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

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

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

Дополнительные сведения см. в статье Инструкция UPDATE STATISTICS (Transact-SQL).

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

  1. В обозревателе объектовподключитесь к экземпляру компонента Компонент Database Engine.

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

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

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

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

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

Дальнейшие действия

Дополнительные сведения см. в статье Инструкция UPDATE STATISTICS (Transact-SQL).