Автоматическая настройкаAutomatic tuning

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL Azure нетAzure Synapse Analytics (хранилище данных SQL) нетParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Функция автоматической настройки базы данных предоставляет сведения о возможных проблемах с обработкой запросов и рекомендуемые решения. Она также может автоматически исправлять выявленные проблемы.Automatic tuning is a database feature that provides insight into potential query performance problems, recommend solutions, and automatically fix identified problems.

Автоматическая настройка в SQL Server 2017 (14.x)SQL Server 2017 (14.x) уведомляет об обнаружении потенциальных проблем производительности и позволяет применять корректирующие действия или позволяет Компонент Database EngineDatabase Engine автоматически устранять проблемы с производительностью.Automatic tuning in SQL Server 2017 (14.x)SQL Server 2017 (14.x) notifies you whenever a potential performance issue is detected, and lets you apply corrective actions, or lets the Компонент Database EngineDatabase Engine automatically fix performance problems. Автоматическая настройка в SQL Server 2017 (14.x)SQL Server 2017 (14.x) позволяет выявлять и устранять проблемы с производительностью из-за регрессией в выборе плана выполнения запроса.Automatic tuning in SQL Server 2017 (14.x)SQL Server 2017 (14.x) enables you to identify and fix performance issues caused by query execution plan choice regressions. Автоматическая настройка в База данных SQL AzureAzure SQL Database также создает необходимые индексы и удаляет неиспользуемые индексы.Automatic tuning in База данных SQL AzureAzure SQL Database also creates necessary indexes and drops unused indexes. Дополнительные сведения о плане выполнения запроса, см. в разделе планы выполнения.For more information on query execution plans, see Execution Plans.

Компонент SQL Server Database EngineSQL Server Database Engine Мониторы запросы, которые выполняются в базе данных и автоматически повышает производительность рабочей нагрузки.The Компонент SQL Server Database EngineSQL Server Database Engine monitors the queries that are executed on the database and automatically improves performance of the workload. Компонент Database EngineDatabase Engine Имеет встроенный аналитический механизм, который может автоматически настраивать и повышать производительность запросов путем динамической адаптации базы данных к рабочей нагрузке.The Компонент Database EngineDatabase Engine has a built-in intelligence mechanism that can automatically tune and improve performance of your queries by dynamically adapting the database to your workload. Существует два функций автонастройки, которые доступны.There are two automatic tuning features that are available:

  • Автоматическое исправление плана идентифицирует проблемных запросов, планы выполнения и устраняет проблемы с производительностью плана выполнения запроса.Automatic plan correction identifies problematic query execution plans and fixes query execution plan performance problems. Область применения: SQL ServerSQL Server (начиная с SQL Server 2017 (14.x)SQL Server 2017 (14.x)) и База данных SQL AzureAzure SQL Database.Applies to: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)) and База данных SQL AzureAzure SQL Database
  • Автоматическое управление индексами определяет индексы, которые должны быть добавлены в базу данных или, которые должны быть удалены.Automatic index management identifies indexes that should be added in your database, and indexes that should be removed. Область применения: База данных SQL AzureAzure SQL DatabaseApplies to: База данных SQL AzureAzure SQL Database

Почему Автоматическая настройка?Why automatic tuning?

Три из главных задач при администрировании классической базы данных мониторинга рабочей нагрузки, определение важных Transact-SQLTransact-SQL запросы, индексы, которые должны быть добавлены для повышения производительности и идентифицирующий редко используется.Three of the main tasks in classic database administration are monitoring the workload, identifying critical Transact-SQLTransact-SQL queries, indexes that should be added to improve performance, and identifying rarely used. Компонент SQL Server Database EngineSQL Server Database Engine Обеспечивает точное представление о запросах и индексах, которые необходимо отслеживать.The Компонент SQL Server Database EngineSQL Server Database Engine provides detailed insight into the queries and indexes that you need to monitor. Тем не менее постоянно отслеживает базу данных — это сложная и трудоемкая задача, особенно при работе с несколькими базами данных.However, constantly monitoring a database is a hard and tedious task, especially when dealing with many databases. Управление огромным числом баз данных может быть невозможно эффективно.Managing a huge number of databases might be impossible to do efficiently. Вместо того чтобы выполнять мониторинг и настройку базы данных вручную, вы рекомендуем делегировать некоторые мониторинг и действия по настройке Компонент Database EngineDatabase Engine с помощью функции автоматической настройки.Instead of monitoring and tuning your database manually, you might consider delegating some of the monitoring and tuning actions to the Компонент Database EngineDatabase Engine using automatic tuning feature.

Как работает автоматическая настройка?How does automatic tuning work?

Автоматическая настройка — это непрерывный мониторинг и анализ процесс, который постоянно отслеживают характеристики рабочей нагрузки и выявить потенциальные проблемы и усовершенствования.Automatic tuning is a continuous monitoring and analysis process that constantly learns about the characteristics of your workload and identify potential issues and improvements.

Процесс автоматической настройки

Этот процесс позволяет базе данных динамически адаптироваться к рабочей нагрузке поиска индексы и планы могут способствовать повышению производительности рабочих нагрузок и какие индексы, влияющие на рабочую нагрузку.This process enables database to dynamically adapt to your workload by finding what indexes and plans might improve performance of your workloads and what indexes affect your workloads. На основании этих данных, автоматическая настройка применяет действия по настройке, которые повышают производительность рабочей нагрузки.Based on these findings, automatic tuning applies tuning actions that improve performance of your workload. Кроме того база данных постоянно отслеживает производительность после любого изменения, сделанные автоматической настройкой, чтобы убедиться, что они повышают производительность рабочей нагрузки.In addition, database continuously monitors performance after any change made by automatic tuning to ensure that it improves performance of your workload. Любое действие, которое не повысило производительность, автоматически отменяется.Any action that didn't improve performance is automatically reverted. Процесс проверки является ключевой возможностью, которая гарантирует, что любые изменения, сделанные автоматической настройкой падать производительность рабочей нагрузки.This verification process is a key feature that ensures that any change made by automatic tuning does not decrease the performance of your workload.

Автоматическое исправление планаAutomatic plan correction

Автоматическое исправление плана — автоматической функции настройки, определяющий плана выполнения, выбор регрессии и автоматически устранить проблему, можно применить последний известный удачный план.Automatic plan correction is an automatic tuning feature that identifies execution plans choice regression and automatically fix the issue by forcing the last known good plan. Дополнительные сведения о плане выполнения запроса и оптимизатор запросов, см. в разделе руководство по архитектуре обработки запросов.For more information about query execution plans and the query optimizer, see the Query Processing Architecture Guide.

Что такое Регрессия выбора плана выполненияWhat is execution plan choice regression?

Компонент SQL Server Database EngineSQL Server Database Engine Может использовать различные планы выполнения для выполнения Transact-SQLTransact-SQL запросов.The Компонент SQL Server Database EngineSQL Server Database Engine may use different execution plans to execute the Transact-SQLTransact-SQL queries. Планы запросов зависят от статистики, индексы и других факторов.Query plans depend on the statistics, indexes, and other factors. Оптимальный план, который должен использоваться для выполнения некоторых Transact-SQLTransact-SQL запрос может изменяться с течением времени.The optimal plan that should be used to execute some Transact-SQLTransact-SQL query might be changed over time. В некоторых случаях новый план не может быть лучше, чем предыдущий, и новый план может вызвать снижение производительности.In some cases, the new plan might not be better than the previous one, and the new plan might cause a performance regression.

Регрессия выбора плана выполнения запросаQuery execution plan choice regression

Каждый раз, когда вы заметили планом, вы должны найти хорошие предыдущих планирования и заставить его вместо текущего один с использованием sp_query_store_force_plan процедуры.Whenever you notice the plan choice regression, you should find some previous good plan and force it instead of the current one using sp_query_store_force_plan procedure. Компонент Database EngineDatabase Engine в SQL Server 2017 (14.x)SQL Server 2017 (14.x) предоставляет сведения о бюллетене планы и рекомендуемые действия по исправлению.in SQL Server 2017 (14.x)SQL Server 2017 (14.x) provides information about regressed plans and recommended corrective actions. Кроме того Компонент Database EngineDatabase Engine позволяет полностью автоматизировать этот процесс и позволить Компонент Database EngineDatabase Engine устранить проблему, найти связанные с изменением плана.Additionally, Компонент Database EngineDatabase Engine enables you to fully automate this process and let Компонент Database EngineDatabase Engine fix any problem found related to the plan changes.

Автоматическое исправление выбранного планаAutomatic plan choice correction

Компонент Database EngineDatabase Engine может автоматически переключиться на последний известный удачный план при обнаружении планом.can automatically switch to the last known good plan whenever the plan choice regression is detected.

Исправление выбранного плана выполнения запросаQuery execution plan choice correction

Компонент Database EngineDatabase Engine автоматически обнаруживает любые потенциальные регрессии выбором плана, включая план, который должен использоваться вместо неправильный план.automatically detects any potential plan choice regression including the plan that should be used instead of the wrong plan. Когда Компонент Database EngineDatabase Engine применяет последний известный эффективный план, автоматически отслеживается также производительность принудительного плана.When the Компонент Database EngineDatabase Engine applies the last known good plan, it automatically monitors the performance of the forced plan. Если план не лучше плана с ухудшением, новый план будет ухудшением и Компонент Database EngineDatabase Engine будет компилироваться новый план.If the forced plan is not better than the regressed plan, the new plan will be unforced and the Компонент Database EngineDatabase Engine will compile a new plan. Если Компонент Database EngineDatabase Engine проверяет, что план лучше плана с ухудшением, принудительного плана будет сохранена при переводе лучше плана с ухудшением, пока не произойдет рекомпиляции событий (например, на следующем статистики обновления или изменения схемы).If the Компонент Database EngineDatabase Engine verifies that the forced plan is better than the regressed plan, the forced plan will be retained if it is better than the regressed plan, until a recompile occurs (for example, on next statistics update or schema change).

Примечание

Принудительно планы автоматически любое выполнение система не сохраняются между перезапусками из SQL ServerSQL Server экземпляра.Any execution plans auto forced are not persisted between restarts of the SQL ServerSQL Server instance.

Включение автоматического исправления выбранного планаEnabling automatic plan choice correction

Вы можете отдельно для каждой базы данных включить автоматическую настройку и указать, что при ухудшении производительности после изменения плана следует принудительно использовать последний известный эффективный план.You can enable automatic tuning per database and specify that last good plan should be forced whenever some plan change regression is detected. Автоматическая настройка включается с помощью следующей команды.Automatic tuning is enabled using the following command:

ALTER DATABASE current
SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON ); 

После включения этого параметра Компонент Database EngineDatabase Engine автоматически принудительно где предполагаемое Процессора замедлится более чем на 10 секунд, или количество ошибок в новом плане больше, чем количество ошибок в рекомендуемом и убедитесь, что Принудительный план лучше текущего.Once you enable this option, the Компонент Database EngineDatabase Engine will automatically force any recommendation where the estimated CPU gain is higher than 10 seconds, or the number of errors in the new plan is higher than the number of errors in the recommended plan, and verify that the forced plan is better than the current one.

Альтернатива — исправление выбранного плана вручнуюAlternative - manual plan choice correction

Без автоматической настройки пользователи должны периодически проверять состояние системы и искать запросы, в которых были потери производительности.Without automatic tuning, users must periodically monitor system and look for the queries that regressed. Если производительность была снижена любого плана, пользователь должен найти хорошие предыдущих планирования и заставить его вместо текущего один с использованием sp_query_store_force_plan процедуры.If any plan regressed, user should find some previous good plan and force it instead of the current one using sp_query_store_force_plan procedure. Рекомендуемым способом будет принудительно использовать последний известный удачный план, поскольку старые планы могут быть недоступными из-за изменения статистики или индекса.The best practice would be to force the last known good plan because older plans might be invalid due to statistic or index changes. Пользователь, который заставляет последний известный удачный план необходимо отслеживать производительность запроса, который выполняется с помощью принудительного плана и убедиться, этой форсированном плане работает должным образом.The user who forces the last known good plan should monitor performance of the query that is executed using the forced plan and verify that forced plan works as expected. В зависимости от результатов, мониторинга и анализа плана следует принудительно использовать, или пользователь должен найти другим способом для оптимизации запроса.Depending on the results of monitoring and analysis, plan should be forced or user should find some other way to optimize the query. Вручную принудительными планами должен не используют неограниченно долго, так как Компонент Database EngineDatabase Engine должны иметь возможность применить оптимальные планы.Manually forced plans should not be forced forever, because the Компонент Database EngineDatabase Engine should be able to apply optimal plans. Пользователь или администратор базы данных должен в конечном итоге отменить принудительное использование плана с помощью sp_query_store_unforce_plan процедуры и позволяют Компонент Database EngineDatabase Engine найти оптимальный план.The user or DBA should eventually unforce the plan using sp_query_store_unforce_plan procedure, and let the Компонент Database EngineDatabase Engine find the optimal plan.

Совет

Alternativelly, используйте запросы с принудительно планы представление Store запрос для поиска и отменить принудительное использование планов.Alternativelly, use the Queries With Forced Plans Query Store view to locate and unforce plans.

SQL ServerSQL Server предоставляет все необходимые представления и процедуры, необходимые для наблюдения за производительностью и устранения проблем в Store запроса.provides all necessary views and procedures required to monitor performance and fix problems in Query Store.

В SQL Server 2016 (13.x)SQL Server 2016 (13.x), можно найти с помощью системных представлений запросов Store регрессией в выборе плана.In SQL Server 2016 (13.x)SQL Server 2016 (13.x), you can find plan choice regressions using Query Store system views. В SQL Server 2017 (14.x)SQL Server 2017 (14.x), Компонент Database EngineDatabase Engine и показывает потенциальных регрессией в выборе плана и рекомендуемые действия, которые должны быть применены в sys.dm_db_tuning_recommendations (Transact-SQL) представления.In SQL Server 2017 (14.x)SQL Server 2017 (14.x), the Компонент Database EngineDatabase Engine detects and shows potential plan choice regressions and the recommended actions that should be applied in the sys.dm_db_tuning_recommendations (Transact-SQL) view. В представлении отображаются сведения о проблеме, важность проблемы и сведения, такие как выявленных запросов, идентификатор плана с ухудшением, идентификатор плана, который был использован в качестве базовых показателей для сравнения и Transact-SQLTransact-SQL инструкцию, которая может выполняться для исправления проблема.The view shows information about the problem, the importance of the issue, and details such as the identified query, the ID of the regressed plan, the ID of the plan that was used as baseline for comparison, and the Transact-SQLTransact-SQL statement that can be executed to fix the problem.

typetype descriptiondescription datetimedatetime scorescore detailsdetails ......
FORCE_LAST_GOOD_PLAN Изменено с 4 мс до 14 мс времени ЦПCPU time changed from 4 ms to 14 ms 3/17/20173/17/2017 8383 queryId recommendedPlanId regressedPlanId T-SQLqueryId recommendedPlanId regressedPlanId T-SQL
FORCE_LAST_GOOD_PLAN Изменено с 37 мс до 84 мс времени ЦПCPU time changed from 37 ms to 84 ms 3/16/20173/16/2017 2626 queryId recommendedPlanId regressedPlanId T-SQLqueryId recommendedPlanId regressedPlanId T-SQL

В следующем списке описываются некоторые столбцы из данного представления:Some columns from this view are described in the following list:

  • Рекомендуемое действие - тип FORCE_LAST_GOOD_PLANType of the recommended action - FORCE_LAST_GOOD_PLAN
  • Описание, которое содержит сведения, почему Компонент Database EngineDatabase Engine считает, что это изменение плана потенциальных снижения производительностиDescription that contains information why Компонент Database EngineDatabase Engine thinks that this plan change is a potential performance regression
  • Дата и время обнаружения потенциальных регрессииDatetime when the potential regression is detected
  • Оценка этой рекомендацииScore of this recommendation
  • Сведения о неполадках, таких как идентификатор обнаруженных плана, идентификатор плана с ухудшением, идентификатор плана, которое должно обязательно устраните ее причину, Transact-SQLTransact-SQL скрипт, который может применяться для устранения проблемы и т. д. Сведения хранятся в формате JSONDetails about the issues such as ID of the detected plan, ID of the regressed plan, ID of the plan that should be forced to fix the issue, Transact-SQLTransact-SQL script that might be applied to fix the issue, etc. Details are stored in JSON format

Используйте следующий запрос, чтобы получить сценарий, который устраняет проблемы и Дополнительные сведения о предполагаемым получить:Use the following query to obtain a script that fixes the issue and additional information about the estimated gain:

SELECT reason, score,
      script = JSON_VALUE(details, '$.implementationDetails.script'),
      planForceDetails.*,
      estimated_gain = (regressedPlanExecutionCount + recommendedPlanExecutionCount)
                  * (regressedPlanCpuTimeAverage - recommendedPlanCpuTimeAverage)/1000000,
      error_prone = IIF(regressedPlanErrorCount > recommendedPlanErrorCount, 'YES','NO')
FROM sys.dm_db_tuning_recommendations
CROSS APPLY OPENJSON (Details, '$.planForceDetails')
    WITH (  [query_id] int '$.queryId',
            regressedPlanId int '$.regressedPlanId',
            recommendedPlanId int '$.recommendedPlanId',
            regressedPlanErrorCount int,
            recommendedPlanErrorCount int,
            regressedPlanExecutionCount int,
            regressedPlanCpuTimeAverage float,
            recommendedPlanExecutionCount int,
            recommendedPlanCpuTimeAverage float
          ) AS planForceDetails;

Ниже приводится результирующий набор.Here is the result set.

reasonreason scorescore скриптscript запрос_идентификаторquery_id текущий план_идентификаторcurrent plan_id Рекомендуется использовать план_идентификаторrecommended plan_id предполагаемый_получитьestimated_gain Ошибка_ошибкамerror_prone
Изменено с 3 мс на 46 мс времени ЦПCPU time changed from 3 ms to 46 ms 3636 EXEC sp_запроса_хранения_принудительно_плана 12, 17;EXEC sp_query_store_force_plan 12, 17; 1212 2828 1717 11.5911.59 00

estimated_gain Представляет предполагаемое количество секунд, которые будут сохранены, если Рекомендуемый план будет выполняться вместо текущего плана.estimated_gain represents the estimated number of seconds that would be saved if the recommended plan would be executed instead of the current plan. Рекомендуемый план должен принудительно вместо текущего плана, если выигрыш больше 10 секунд.The recommended plan should be forced instead of the current plan if the gain is greater than 10 seconds. Если дополнительные ошибки (например, значения времени ожидания или прерванных выполнений) в текущем плане, чем в Рекомендуемый план, столбец error_prone может быть присвоено значение YES.If there are more errors (for example, time-outs or aborted executions) in the current plan than in the recommended plan, the column error_prone would be set to the value YES. Ошибка ошибкам план — еще одна причина, почему рекомендуется плана следует принудительно использовать вместо текущей.Error prone plan is another reason why the recommended plan should be forced instead of the current one.

Несмотря на то что Компонент Database EngineDatabase Engine предоставляет все данные, необходимые для идентификации регрессией в выборе плана; непрерывный мониторинг и устранение проблем с производительностью может быть утомительным процессом.Although Компонент Database EngineDatabase Engine provides all information required to identify plan choice regressions; continuous monitoring and fixing performance issues might be a tedious process. Автоматическая настройка упрощает этот процесс.Automatic tuning makes this process much easier.

Примечание

Данные в sys.dm_db_tuning_recommendations динамического административного Представления не сохраняются между перезапусками из SQL ServerSQL Server экземпляра.Data in the sys.dm_db_tuning_recommendations DMV is not persisted between restarts of the SQL ServerSQL Server instance.

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

В База данных SQL AzureAzure SQL Database, Управление индексами легко поскольку База данных SQL AzureAzure SQL Database узнает о рабочей нагрузке и гарантирует, что ваши данные всегда оптимально индексируется.In База данных SQL AzureAzure SQL Database, index management is easy because База данных SQL AzureAzure SQL Database learns about your workload and ensures that your data is always optimally indexed. Правильное Проектирование индекса имеет решающее значение для достижения оптимальной производительности рабочей нагрузки и автоматическое управление индексами может помочь оптимизировать индексы.Proper index design is crucial for optimal performance of your workload, and automatic index management can help you optimize your indexes. Автоматическое управление индексами можно устранять проблемы с производительностью в неправильно индексированных базах данных, или поддерживать и оптимизировать индексы в существующую схему базы данных.Automatic index management can either fix performance issues in incorrectly indexed databases, or maintain and improve indexes on the existing database schema. Автоматическая настройка в База данных SQL AzureAzure SQL Database выполняет следующие действия:Automatic tuning in База данных SQL AzureAzure SQL Database performs the following actions:

  • Определяет индексы, которые могут повысить производительность вашей Transact-SQLTransact-SQL запросы на чтение данных из таблиц.Identifies indexes that could improve performance of your Transact-SQLTransact-SQL queries that read data from the tables.
  • Определяет избыточные индексы или индексы, которые не использовались в более длительного периода времени, который может быть удален.Identifies the redundant indexes or indexes that were not used in longer period of time that could be removed. Удаление ненужных индексов улучшает производительность запросов, которые обновляют данные в таблицах.Removing unnecessary indexes improves performance of the queries that update data in tables.

Зачем нужно Управление индексами?Why do you need index management?

Индексы ускоряют некоторые запросы на чтение данных из таблиц; Тем не менее они могут снизить производительность запросов для обновления данных.Indexes speed up some of your queries that read data from the tables; however, they can slow down the queries that update data. Необходимо тщательно проанализировать необходимость создания индекса и столбцы, которые необходимо включить в индекс.You need to carefully analyze when to create an index and what columns you need to include in the index. Некоторые индексы могут оказаться ненужными через некоторое время.Some indexes might not be needed after some time. Таким образом необходимо периодически определить и удалить индексы, которые не приносят никаких преимуществ.Therefore, you would need to periodically identify and drop the indexes that do not bring any benefits. Если вы игнорировать неиспользуемые индексы, производительность запросов, которые обновляют данные может уменьшиться без каких-либо преимуществ для запросов, которые считывают данные.If you ignore the unused indexes, performance of the queries that update data would be decreased without any benefit on the queries that read data. Неиспользуемые индексы также влияют на общую производительность системы, так как дополнительные обновления требуют ненужного ведения журнала.Unused indexes also affect overall performance of the system because additional updates require unnecessary logging.

Поиск оптимального набора индексов, которые повышают производительность запросов, чтение данных из таблиц и оказывают минимальное влияние на обновления может потребовать непрерывного и сложного анализа.Finding the optimal set of indexes that improve performance of the queries that read data from your tables and have minimal impact on updates might require continuous and complex analysis.

База данных SQL AzureAzure SQL Database использует встроенную аналитику и расширенные фильтры, которые анализируют запросы, определяют индексы, которые оптимально подходили бы для все существующие рабочие нагрузки и индексы могут быть удалены.uses built-in intelligence and advanced rules that analyze your queries, identify indexes that would be optimal for your current workloads, and the indexes might be removed. База данных SQL Azure гарантирует, что имеется минимально необходимый набор индексов, оптимизирующих запросы, которые считывают данные, с минимальным воздействием на другие запросы.Azure SQL Database ensures that you have a minimal necessary set of indexes that optimize the queries that read data, with the minimized impact on the other queries.

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

Помимо обнаружения База данных SQL AzureAzure SQL Database можно автоматически применять выявленных рекомендации.In addition to detection, База данных SQL AzureAzure SQL Database can automatically apply identified recommendations. Если обнаружится, что встроенные правила повышают производительность базы данных, можно разрешить База данных SQL AzureAzure SQL Database автоматически управлять индексами.If you find that the built-in rules improve the performance of your database, you might let База данных SQL AzureAzure SQL Database automatically manage your indexes.

Чтобы включить автоматическую настройку База данных SQL AzureAzure SQL Database и разрешить автоматической функции настройки, чтобы полностью управлять рабочей нагрузкой, см. в разделе включить автоматическую настройку в базе данных SQL Azure с помощью портала Azure.To enable automatic tuning in База данных SQL AzureAzure SQL Database and allow the automatic tuning feature to fully manage your workload, see Enable automatic tuning in Azure SQL Database using Azure portal.

Когда База данных SQL AzureAzure SQL Database применяет рекомендацию CREATE INDEX или DROP INDEX, он автоматически отслеживает производительность запросов, которые были затронуты индекс.When the База данных SQL AzureAzure SQL Database applies a CREATE INDEX or DROP INDEX recommendation, it automatically monitors the performance of the queries that are affected by the index. Создание индекса будут храниться только в том случае, если улучшить производительность соответствующих запросов.New index will be retained only if performances of the affected queries are improved. Удаленный индекс будет автоматически создан повторно, если существуют некоторые запросы, которые работать медленнее из-за отсутствия индекса.Dropped index will be automatically re-created if there are some queries that run slower due to the absence of the index.

Рекомендации по управлению автоматической индексацииAutomatic index management considerations

Действия, необходимые для создания необходимых индексов в База данных SQL AzureAzure SQL Database может потреблять ресурсы и временно повлиять на производительность рабочей нагрузки.Actions required to create necessary indexes in База данных SQL AzureAzure SQL Database might consume resources and temporally affect workload performance. Чтобы свести к минимуму влияние процесса создания индекса на производительность рабочей нагрузки, База данных SQL AzureAzure SQL Database находит соответствующее временное окно для любой операции управления индексом.To minimize the impact of index creation on workload performance, База данных SQL AzureAzure SQL Database finds the appropriate time window for any index management operation. Действия по настройке отложены, если в базе данных необходимы ресурсы для выполнения рабочей нагрузки и запускается, когда база данных имеет достаточно неиспользуемых ресурсов, которые можно использовать для задач обслуживания.Tuning action is postponed if the database needs resources to execute your workload, and started when the database has enough unused resources that can be used for the maintenance task. Одна из важных функций автоматического управления индексами — это проверка действий.One important feature in automatic index management is a verification of the actions. Когда База данных SQL AzureAzure SQL Database создает или удаляет индекс, процесс мониторинга анализирует производительность рабочей нагрузки, чтобы убедиться, что действие повышена производительность.When База данных SQL AzureAzure SQL Database creates or drops index, a monitoring process analyzes performance of your workload to verify that the action improved the performance. Если значительное улучшение -, действие немедленно отменяется.If it didn't bring significant improvement - the action is immediately reverted. Таким образом, База данных SQL AzureAzure SQL Database гарантирует, что автоматические действия не оказывают негативного влияния на производительность рабочей нагрузки.This way, База данных SQL AzureAzure SQL Database ensures that automatic actions do not negatively impact performance of your workload. Индексы, созданные автоматической настройкой, прозрачны для операции обслуживания в базовой схеме.Indexes created by automatic tuning are transparent for the maintenance operation on the underlying schema. Изменения схемы, например удаление или переименование столбцов не блокируются при наличии автоматически созданных индексов.Schema changes such as dropping or renaming columns are not blocked by the presence of automatically created indexes. Индексы, которые создаются автоматически по База данных SQL AzureAzure SQL Database , немедленно удаляются при связанных удалении таблицы или столбцы.Indexes that are automatically created by База данных SQL AzureAzure SQL Database are immediately dropped when related table or columns is dropped.

Альтернатива — Управление индексами вручнуюAlternative - manual index management

Без автоматического управления индексами, пользователю необходимо будет вручную запросить sys.dm_db_missing_index_details (Transact-SQL) просматривать или использовать панель мониторинга производительности отчет в Среда Management StudioManagement Studio для индексов поиска, которые могут повысить производительность, создать индексы, используя сведения, представленные в этом представлении и мониторинг производительности запроса вручную.Without automatic index management, user would need to manually query sys.dm_db_missing_index_details (Transact-SQL) view or use the Performance Dashboard report in Среда Management StudioManagement Studio to find indexes that might improve performance, create indexes using the details provided in this view, and manually monitor performance of the query. Чтобы найти индексы, которые должны быть удалены, пользователям необходимо отслеживать статистику операционного использования индексов для поиска редко используемые индексы.In order to find the indexes that should be dropped, users should monitor operational usage statistics of the indexes to find rarely used indexes.

База данных SQL AzureAzure SQL Database упрощает этот процесс.simplifies this process. База данных SQL AzureAzure SQL Database анализирует рабочую нагрузку, определяет запросы, которые могут выполняться быстрее с новым индексом и перечислены неиспользуемые или повторяющиеся индексы.analyzes your workload, identifies the queries that could be executed faster with a new index, and identifies unused or duplicated indexes. Дополнительные сведения об идентификации индексов, которые должны быть изменены в найти рекомендации по индексам на портале Azure.Find more information about identification of indexes that should be changed at Find index recommendations in Azure portal.

См. такжеSee Also

ALTER DATABASE SET AUTOMATIC_TUNING (Transact-SQL) ALTER DATABASE SET AUTOMATIC_TUNING (Transact-SQL)
sys.database_automatic_tuning_options (Transact-SQL)sys.database_automatic_tuning_options (Transact-SQL)
sys.dm_db_tuning_recommendations (Transact-SQL) sys.dm_db_tuning_recommendations (Transact-SQL)
sys.dm_db_missing_index_details (Transact-SQL) sys.dm_db_missing_index_details (Transact-SQL)
sp_query_store_force_plan (Transact-SQL) sp_query_store_force_plan (Transact-SQL)
sp_query_store_unforce_plan (Transact-SQL) sp_query_store_unforce_plan (Transact-SQL)
sys.database_query_store_options (Transact-SQL) sys.database_query_store_options (Transact-SQL)
Функции JSON JSON functions
Планы выполнения Execution Plans
Наблюдение и настройка производительности Monitor and Tune for Performance
Средства контроля и настройки производительности Performance Monitoring and Tuning Tools
Мониторинг производительности с использованием хранилища запросовMonitoring Performance By Using the Query Store
Помощник по настройке запросовQuery Tuning Assistant