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

ОБЛАСТЬ ПРИМЕНЕНИЯ ЭТОЙ СТАТЬИ: даSQL Server (начиная с версии 2017)даБаза данных SQL AzureнетХранилище данных SQL AzureнетParallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL Server (starting with 2017)yesAzure SQL DatabasenoAzure SQL Data Warehouse 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 2017SQL Server 2017 уведомит пользователя при обнаружении потенциальных проблем производительности, а также позволяет применять действия по исправлению или позволяет Компонент Database EngineDatabase Engine автоматически устранить проблемы с производительностью.Automatic tuning in SQL Server 2017SQL Server 2017 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 2017SQL Server 2017 позволяет определить и устранить проблемы с производительностью за регрессию при выборе плана SQL.Automatic tuning in SQL Server 2017SQL Server 2017 enables you to identify and fix performance issues caused by SQL plan choice regressions. Автоматической настройки База данных SQL AzureAzure SQL Database создает необходимые индексы и удаляет неиспользуемые индексы.Automatic tuning in База данных SQL AzureAzure SQL Database creates necessary indexes and drops unused indexes.

Компонент Database EngineDatabase Engine отслеживает запросы, которые выполняются в базе данных и автоматически повысит производительность рабочей нагрузки.monitors the queries that are executed on the database and automatically improves performance of the workload. Компонент 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:

  • План автоматического исправленияSQL Server 2017SQL Server 2017 и База данных SQL AzureAzure SQL Database), идентифицирующий планов выполнения проблемных запросов и исправления SQL планирование проблемы с производительностью.Automatic plan correction (available in SQL Server 2017SQL Server 2017 and База данных SQL AzureAzure SQL Database) that identifies problematic query execution plans and fixes SQL plan performance problems.
  • Управление индексами автоматического (доступно только в База данных SQL AzureAzure SQL Database), определяющий индексы, которые должны быть добавлены в базу данных и индексы, которые должны быть удалены.Automatic index management (available only in База данных SQL AzureAzure SQL Database) that identifies indexes that should be added in your database, and indexes that should be removed.

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

Одно из основных задач администрирования классические базы данных на наблюдение за рабочей нагрузки, определение критических Transact-SQLTransact-SQL запросы, индексы, которые должны быть добавлены для повышения производительности и редко используемые индексы.One of the main tasks in classic database administration is monitoring the workload, identifying critical Transact-SQLTransact-SQL queries, indexes that should be added to improve performance, and rarely used indexes. Компонент Database EngineDatabase Engine предоставляет точное представление о запросов и индексов, которые необходимо отслеживать. provides detailed insight into the queries and indexes that you need to monitor. Однако постоянно наблюдения за базой данных является жестких и трудоемкой задачей, особенно при работе со множеством баз данных.However, constantly monitoring 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 Компонент Database EngineDatabase Engine using automatic tuning feature.

Принцип работы автоматической настройкиHow does automatic tuning works?

Автоматической настройки непрерывного наблюдения и процесс анализа, который постоянно узнает о характеристик рабочей нагрузки и определите потенциальные проблемы и усовершенствования.Automatic tuning is a continuous monitoring and analysis process that constantly learns about the characteristic 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

План автоматического исправления является функция автоматической настройки, который идентифицирует SQL plans регрессии Выбор и автоматически устранить проблему путем принудительного последнего известного хороший план.Automatic plan correction is an automatic tuning feature that identifies SQL plans choice regression and automatically fix the issue by forcing the last known good plan.

Что такое Регрессия Выбор плана SQLWhat is SQL plan choice regression?

Компонент SQL Server Database EngineSQL Server Database Engine для выполнения может использовать разные планы SQL Transact-SQLTransact-SQL запросов.may use different SQL 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.

Регрессия Выбор плана SQLSQL 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 2017SQL Server 2017 представлены сведения об сниженные планы и рекомендуемые действия по исправлению. in SQL Server 2017SQL Server 2017 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.

Исправление Выбор плана SQLSQL 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. Если принудительный план не лучше, чем регрессионных плана, новый план будет unforced и Компонент 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 Компонент Database EngineDatabase Engine verifies that the forced plan is better than regressed one, the forced plan will be retained until a recompile (for example, on next statistics or schema change) if it is better than the regressed plan.

Включение автоматического плана вариант исправления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 turn-on this option, Компонент 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.

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

В SQL Server 2016SQL Server 2016, можно найти с помощью системных представлений хранилища запросов регрессию при выборе плана.In SQL Server 2016SQL Server 2016, you can find plan choice regressions using Query Store system views. В SQL Server 2017SQL Server 2017, Компонент Database EngineDatabase Engine обнаруживает и отображает потенциальных регрессию при выборе плана и рекомендуемые действия, которые должны применяться в sys.dm_db_tuning_recommendations ( Transact-SQL ) представления.In SQL Server 2017SQL Server 2017, 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 подробностиdetails
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 ms 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_PLAN.Type 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 скрипт, который может применяться для устранения проблемы, и т. д. Сведения хранятся в формат JSON.Details 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',
            [current plan_id] int '$.regressedPlanId',
            [recommended plan_id] 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 ms 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.

Индекс автоматического управления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:

  • Идентифицирует индексы, которые может улучшить производительность запросов T-SQL, считывающие данные из таблиц.Identifies indexes that could improve performance of your T-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 Azure и позволяют полностью управлять работой функция автоматической настройки, в разделе включить автоматическую настройку в базе данных SQL Azure с помощью портала Azure.To enable automatic tuning in Azure SQL Database and let automatic tuning feature 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 Azure находит соответствующий период для любой операции управления индекса.To minimize the impact of index creation on workload performance, Azure 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 Azure создается или удаляется индекс, процесс мониторинга анализирует производительность рабочей нагрузки, чтобы убедиться, что действие улучшена производительность.When Azure 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 Azure гарантирует, что автоматические действия не снижает производительность рабочей нагрузки.This way, Azure 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 Azure немедленно удаляются при связанных удалении таблицы или столбцы.Indexes that are automatically created by Azure SQL Database are immediately dropped when related table or columns is dropped.

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

Без управления автоматическое индекс, ему потребуется вручную запросить sys.dm_db_missing_index_details ( Transact-SQL ) представление, чтобы найти индексы, которые могут повысить производительность, создать индексы, используя сведения, представленные в этом представлении и вручную отслеживать производительность запроса.Without automatic index management, user would need to manually query sys.dm_db_missing_index_details (Transact-SQL) view 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 AUTOMATIC_TUNING SET базы данных ( 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)
Функции JSONJSON functions