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

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL AzureдаХранилище данных SQL AzureдаParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Обновить статистику оптимизации запросов для таблицы или индексированного представления в SQL Server 2017SQL Server 2017 можно с помощью среды SQL Server Management StudioSQL Server Management Studio или Transact-SQLTransact-SQL.You can update query optimization statistics on a table or indexed view in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. По умолчанию оптимизатор запросов обновляет статистику по мере необходимости для усовершенствования плана запроса. В некоторых случаях можно повысить производительность запроса, выполняя обновление статистики с помощью инструкции UPDATE STATISTICS или хранимой процедуры sp_updatestats чаще, чем это происходит по умолчанию.By default, the query optimizer already updates statistics as necessary to improve the query plan; in some cases you can improve query performance by using UPDATE STATISTICS or the stored procedure sp_updatestats to update statistics more frequently than the default updates.

Обновление статистики гарантирует, что запросы будут компилироваться с актуальной статистикой.Updating statistics ensures that queries compile with up-to-date statistics. Однако обновление статистики вызывает перекомпиляцию запросов.However, updating statistics causes queries to recompile. Рекомендуется не обновлять статистику слишком часто, поскольку необходимо найти баланс между выигрышем в производительности за счет усовершенствованных планов запросов и потерей времени на перекомпиляцию запросов.We recommend not updating statistics too frequently because there is a performance tradeoff between improving query plans and the time it takes to recompile queries. Критерии выбора компромиссного решения зависят от приложения.The specific tradeoffs depend on your application. UPDATE STATISTICS может использовать базу данных tempdb для сортировки образцов строк для построения статистики.UPDATE STATISTICS can use tempdb to sort the sample of rows for building statistics.

В этом разделеIn This Topic

Перед началомBefore You Begin

безопасностьSecurity

PermissionsPermissions

При использовании инструкции UPDATE STATISTICS или внесении изменений в среде SQL Server Management StudioSQL Server Management Studioнеобходимо разрешение ALTER на таблицу или представление.If using UPDATE STATISTICS or making changes through SQL Server Management StudioSQL Server Management Studio, requires ALTER permission on the table or view. При использовании процедуры sp_updatestatsнеобходимо быть членом предопределенной роли сервера sysadmin или владельцем базы данных (dbo).If using sp_updatestats, requires membership in the sysadmin fixed server role, or ownership of the database (dbo).

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

Обновление объекта статистикиTo update a statistics object

  1. В обозревателе объектовщелкните значок «плюс», чтобы развернуть базу данных, в которой нужно обновить статистику.In Object Explorer, click the plus sign to expand the database in which you want to update the statistic.

  2. Чтобы развернуть папку Таблицы , щелкните значок «плюс».Click the plus sign to expand the Tables folder.

  3. Щелкните значок «плюс», чтобы развернуть таблицу, в которой нужно обновить статистику.Click the plus sign to expand the table in which you want to update the statistic.

  4. Щелкните значок «плюс», чтобы развернуть папку Статистика .Click the plus sign to expand the Statistics folder.

  5. Щелкните правой кнопкой мыши объект статистики, который нужно обновить, и выберите пункт Свойства.Right-click the statistics object you wish to update and select Properties.

  6. В диалоговом окне Свойства статистики — имя_статистики установите флажок Обновить статистику для этих столбцов и затем нажмите кнопку ОК.In the Statistics Properties -statistics_name dialog box, select the Update statistics for these columns check box and then click OK.

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

Обновление указанного объекта статистикиTo update a specific statistics object

  1. В обозревателе объектовподключитесь к экземпляру компонента Компонент Database EngineDatabase Engine.In Object Explorer, connect to an instance of Компонент Database EngineDatabase Engine.

  2. На стандартной панели выберите пункт Создать запрос.On the Standard bar, click New Query.

  3. Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.Copy and paste the following example into the query window and click Execute.

    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  
    

Обновление всей статистики в таблицеTo update all statistics in a table

  1. В обозревателе объектовподключитесь к экземпляру компонента Компонент Database EngineDatabase Engine.In Object Explorer, connect to an instance of Компонент Database EngineDatabase Engine.

  2. На стандартной панели выберите пункт Создать запрос.On the Standard bar, click New Query.

  3. Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.Copy and paste the following example into the query window and click Execute.

    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).For more information, see UPDATE STATISTICS (Transact-SQL).

Обновление всей статистики в базе данныхTo update all statistics in a database

  1. В обозревателе объектовподключитесь к экземпляру компонента Компонент Database EngineDatabase Engine.In Object Explorer, connect to an instance of Компонент Database EngineDatabase Engine.

  2. На стандартной панели выберите пункт Создать запрос.On the Standard bar, click New Query.

  3. Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.Copy and paste the following example into the query window and click Execute.

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

Дополнительные сведения см. в статье sp_updatestats (Transact-SQL).For more information, see sp_updatestats (Transact-SQL).

Автоматическое управление индексами и статистикойAutomatic index and statistics management

Используйте такие решения, как Адаптивная дефрагментация индексов, чтобы автоматически управлять дефрагментацией индексов и обновлениями статистики для одной базы данных или нескольких.Leverage solutions such as Adaptive Index Defrag to automatically manage index defragmentation and statistics updates for one or more databases. Эта процедура автоматически выбирает, следует ли перестроить или реорганизовать индекс, сверяясь с уровнем фрагментации и другими параметрами, и обновляет статистику на основе линейных пороговых значений.This procedure automatically chooses whether to rebuild or reorganize an index according to its fragmentation level, amongst other parameters, and update statistics with a linear threshold.