Ajuste automáticoAutomatic tuning

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

O ajuste automático é um recurso de banco de dados que fornece informações sobre possíveis problemas de desempenho de consultas, recomenda soluções e corrige automaticamente os problemas identificados.Automatic tuning is a database feature that provides insight into potential query performance problems, recommend solutions, and automatically fix identified problems.

Ajuste automático no SQL Server 2017 (14.x)SQL Server 2017 (14.x) notifica sempre que um possível problema de desempenho é detectado e permite que você aplique ações corretivas ou permite que o Mecanismo de Banco de DadosDatabase Engine corrigir automaticamente problemas de desempenho.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 Mecanismo de Banco de DadosDatabase Engine automatically fix performance problems. Ajuste automático no SQL Server 2017 (14.x)SQL Server 2017 (14.x) permite que você identifique e corrija problemas de desempenho causados por regressões de escolha do plano de execução de consulta.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. Ajuste automático no Banco de dados SQL do AzureAzure SQL Database também cria índices necessários e descarta os índices não utilizados.Automatic tuning in Banco de dados SQL do AzureAzure SQL Database also creates necessary indexes and drops unused indexes. Para obter mais informações sobre planos de execução de consulta, consulte planos de execução.For more information on query execution plans, see Execution Plans.

O Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine monitora as consultas que são executadas no banco de dados e automaticamente melhora o desempenho da carga de trabalho.The Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine monitors the queries that are executed on the database and automatically improves performance of the workload. O Mecanismo de Banco de DadosDatabase Engine tem um mecanismo de inteligência interna que pode ajustar e melhorar o desempenho de suas consultas adaptando dinamicamente o banco de dados para sua carga de trabalho automaticamente.The Mecanismo de Banco de DadosDatabase 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. Há dois recursos de ajuste automático que estão disponíveis:There are two automatic tuning features that are available:

  • Correção automática de plano identifica problemática consulta planos de execução e corrige problemas de desempenho do plano de execução da consulta.Automatic plan correction identifies problematic query execution plans and fixes query execution plan performance problems. Aplica-se ao: SQL ServerSQL Server (Começando pelo SQL Server 2017 (14.x)SQL Server 2017 (14.x)) e Banco de Dados SQL do AzureAzure SQL DatabaseApplies to: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)) and Banco de Dados SQL do AzureAzure SQL Database
  • Gerenciamento de índice automático identifica os índices que devem ser adicionados ao seu banco de dados e índices que devem ser removidos.Automatic index management identifies indexes that should be added in your database, and indexes that should be removed. Aplica-se ao: Banco de Dados SQL do AzureAzure SQL DatabaseApplies to: Banco de Dados SQL do AzureAzure SQL Database

Por que o ajuste automático?Why automatic tuning?

Três das principais tarefas de administração clássico do banco de dados estão monitorando a carga de trabalho, identificando críticos Transact-SQLTransact-SQL consultas, os índices que devem ser adicionados para melhorar o desempenho e identificação raramente usado.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. O Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine fornece informações detalhadas sobre as consultas e os índices que você precisa monitorar.The Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine provides detailed insight into the queries and indexes that you need to monitor. No entanto, monitorando constantemente a um banco de dados é uma tarefa difícil e entediante, especialmente ao lidar com muitos bancos de dados.However, constantly monitoring a database is a hard and tedious task, especially when dealing with many databases. Gerenciar um grande número de bancos de dados pode ser impossível de fazer com eficiência.Managing a huge number of databases might be impossible to do efficiently. Em vez de monitorar e ajustar seu banco de dados manualmente, você pode considerar delegar algumas do monitoramento e ajuste de ações para o Mecanismo de Banco de DadosDatabase Engine usando o recurso de ajuste automático.Instead of monitoring and tuning your database manually, you might consider delegating some of the monitoring and tuning actions to the Mecanismo de Banco de DadosDatabase Engine using automatic tuning feature.

Como funciona o trabalho de ajuste automático?How does automatic tuning work?

O ajuste automático é um processo de análise que constantemente aprende sobre as características da carga de trabalho e o monitoramento contínuo e identificar possíveis problemas e aprimoramentos.Automatic tuning is a continuous monitoring and analysis process that constantly learns about the characteristics of your workload and identify potential issues and improvements.

Processo de ajuste automático

Esse processo permite que o banco de dados adaptar-se dinamicamente à carga de trabalho, localizando quais planos e índices podem melhorar o desempenho das cargas de trabalho e quais índices afetam suas cargas de trabalho.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. Com base nessas conclusões, o ajuste automático aplica ações de ajuste que melhoram o desempenho da carga de trabalho.Based on these findings, automatic tuning applies tuning actions that improve performance of your workload. Além disso, o banco de dados monitora continuamente o desempenho após qualquer alteração feita pelo ajuste automático para garantir que ele melhora o desempenho da carga de trabalho.In addition, database continuously monitors performance after any change made by automatic tuning to ensure that it improves performance of your workload. Qualquer ação que não melhorar o desempenho é revertida automaticamente.Any action that didn't improve performance is automatically reverted. Esse processo de verificação é um recurso importante que garante que qualquer alteração feita pelo ajuste automático não diminua o desempenho da carga de trabalho.This verification process is a key feature that ensures that any change made by automatic tuning does not decrease the performance of your workload.

Correção automática de planoAutomatic plan correction

Correção automática de plano é um recurso de ajuste automático que identifica regressão da escolha de planos de execução e corrigir automaticamente o problema, forçando o último plano bom conhecido.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. Para obter mais informações sobre planos de execução de consulta e o otimizador de consulta, consulte a guia de arquitetura de processamento de consultas.For more information about query execution plans and the query optimizer, see the Query Processing Architecture Guide.

O que é regressão de escolha do plano de execução?What is execution plan choice regression?

O Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine podem usar planos de execução diferentes para executar o Transact-SQLTransact-SQL consultas.The Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine may use different execution plans to execute the Transact-SQLTransact-SQL queries. Planos de consulta dependem de estatísticas, índices e outros fatores.Query plans depend on the statistics, indexes, and other factors. O plano ideal que deve ser usado para executar algumas Transact-SQLTransact-SQL consulta poderá ser alterada ao longo do tempo.The optimal plan that should be used to execute some Transact-SQLTransact-SQL query might be changed over time. Em alguns casos, o novo plano não pode ser melhor do que o anterior, e o novo plano pode causar uma regressão de desempenho.In some cases, the new plan might not be better than the previous one, and the new plan might cause a performance regression.

Regressão de escolha do plano de execução de consultaQuery execution plan choice regression

Sempre que você observe a regressão da escolha do plano, você deve encontrar alguns bons anteriores planejar e forçá-lo em vez de usar um atual sp_query_store_force_plan procedimento.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. Mecanismo de Banco de DadosDatabase Engine em SQL Server 2017 (14.x)SQL Server 2017 (14.x) fornece informações sobre com regressão recente de planos e as ações corretivas recomendadas.in SQL Server 2017 (14.x)SQL Server 2017 (14.x) provides information about regressed plans and recommended corrective actions. Além disso, Mecanismo de Banco de DadosDatabase Engine lhe permite automatizar esse processo totalmente e permitir que Mecanismo de Banco de DadosDatabase Engine corrigir qualquer problema encontrado relacionadas às alterações de plano.Additionally, Mecanismo de Banco de DadosDatabase Engine enables you to fully automate this process and let Mecanismo de Banco de DadosDatabase Engine fix any problem found related to the plan changes.

Correção da escolha automática de planoAutomatic plan choice correction

Mecanismo de Banco de DadosDatabase Engine muda automaticamente para o último bom plano conhecido sempre que a regressão da escolha do plano é detectada.can automatically switch to the last known good plan whenever the plan choice regression is detected.

Correção de escolha do plano de execução de consultaQuery execution plan choice correction

Mecanismo de Banco de DadosDatabase Engine detecta automaticamente qualquer regressão da escolha do plano potencial incluindo o plano que deve ser usado em vez do plano errado.automatically detects any potential plan choice regression including the plan that should be used instead of the wrong plan. Quando o Mecanismo de Banco de DadosDatabase Engine aplica o último bom plano conhecido, ele automaticamente monitora o desempenho do plano forçado.When the Mecanismo de Banco de DadosDatabase Engine applies the last known good plan, it automatically monitors the performance of the forced plan. Se o plano forçado não é melhor do que o plano regredido, o novo plano não será forçado e o Mecanismo de Banco de DadosDatabase Engine compilará um novo plano.If the forced plan is not better than the regressed plan, the new plan will be unforced and the Mecanismo de Banco de DadosDatabase Engine will compile a new plan. Se o Mecanismo de Banco de DadosDatabase Engine verifica se o plano forçado é melhor do que o plano regredido, o plano forçado será retido se ele é melhor do que o plano regredido, até que uma recompilação ocorra (por exemplo, na próxima estatísticas atualização ou alteração do esquema).If the Mecanismo de Banco de DadosDatabase 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).

Observação

Qualquer automática de planos de execução forçada não são persistentes entre as reinicializações da SQL ServerSQL Server instância.Any execution plans auto forced are not persisted between restarts of the SQL ServerSQL Server instance.

Habilitando a correção da escolha automática de planoEnabling automatic plan choice correction

Habilite o ajuste automático por banco de dados e especifique que o último bom plano deve ser forçado sempre que uma regressão da alteração do plano for detectada.You can enable automatic tuning per database and specify that last good plan should be forced whenever some plan change regression is detected. O ajuste automático é habilitado com o seguinte comando:Automatic tuning is enabled using the following command:

ALTER DATABASE current
SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON ); 

Depois que você habilitar essa opção, o Mecanismo de Banco de DadosDatabase Engine automaticamente forçar qualquer recomendação em que o ganho estimado de CPU é maior do que 10 segundos, ou o número de erros no novo plano é maior do que o número de erros no plano recomendado e verificar se a plano forçado é melhor do que o atual.Once you enable this option, the Mecanismo de Banco de DadosDatabase 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.

Alternativa – correção de escolha do plano manualAlternative - manual plan choice correction

Sem o ajuste automático, os usuários devem monitorar o sistema periodicamente e procurar as consultas regredidas.Without automatic tuning, users must periodically monitor system and look for the queries that regressed. Se um plano tiver regredido, o usuário deverá encontrar bons anteriores planejar e forçá-lo em vez de usar um atual sp_query_store_force_plan procedimento.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. A prática recomendada seria forçar o último plano bom conhecido como planos mais antigos podem ser inválidos devido a alterações de índice ou estatística.The best practice would be to force the last known good plan because older plans might be invalid due to statistic or index changes. O usuário que força o último plano bom conhecido deve monitorar o desempenho da consulta que é executado usando o plano forçado e verifique se o plano forçado funciona conforme o esperado.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. Dependendo do resultado da análise e monitoramento, o plano deve ser forçado ou o usuário deverá encontrar uma outra maneira de otimizar a consulta.Depending on the results of monitoring and analysis, plan should be forced or user should find some other way to optimize the query. Planos forçados manualmente não devem ser forçados para sempre, pois o Mecanismo de Banco de DadosDatabase Engine deve ser capaz de aplicar os planos de qualidade.Manually forced plans should not be forced forever, because the Mecanismo de Banco de DadosDatabase Engine should be able to apply optimal plans. O usuário ou um DBA deve, eventualmente, não forçar plano usando sp_query_store_unforce_plan procedimento e deixar que o Mecanismo de Banco de DadosDatabase Engine encontrar o plano ideal.The user or DBA should eventually unforce the plan using sp_query_store_unforce_plan procedure, and let the Mecanismo de Banco de DadosDatabase Engine find the optimal plan.

Dica

Alternativelly, use o consultas com planos forçados modo de exibição de Store de consulta para localizar e não forçar planos.Alternativelly, use the Queries With Forced Plans Query Store view to locate and unforce plans.

SQL ServerSQL Server fornece todas as exibições necessárias e procedimentos necessários para monitorar o desempenho e corrigir problemas no Query Store.provides all necessary views and procedures required to monitor performance and fix problems in Query Store.

No SQL Server 2016 (13.x)SQL Server 2016 (13.x), você pode encontrar as regressões de escolha de plano usando exibições do sistema de Store de consulta.In SQL Server 2016 (13.x)SQL Server 2016 (13.x), you can find plan choice regressions using Query Store system views. Na SQL Server 2017 (14.x)SQL Server 2017 (14.x), o Mecanismo de Banco de DadosDatabase Engine detecta e mostra as regressões de escolha do plano potencial e as ações recomendadas que devem ser aplicadas na DM db_tuning_recommendations (Transact-SQL) exibição.In SQL Server 2017 (14.x)SQL Server 2017 (14.x), the Mecanismo de Banco de DadosDatabase 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. O modo de exibição mostra informações sobre o problema, a importância do problema e detalhes de como a consulta identificada, a ID do plano regredido, o ID do plano que foi usado como linha de base para comparação e o Transact-SQLTransact-SQL instrução que pode ser executada para corrigir o problema.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 Tempo de CPU alterado de 4 ms a ms 14CPU 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 Tempo de CPU alterado de 37 ms a ms 84CPU time changed from 37 ms to 84 ms 3/16/20173/16/2017 2626 queryId recommendedPlanId regressedPlanId T-SQLqueryId recommendedPlanId regressedPlanId T-SQL

Algumas colunas nessa exibição são descritas na lista a seguir:Some columns from this view are described in the following list:

  • Tipo de ação recomendado- FORCE_LAST_GOOD_PLANType of the recommended action - FORCE_LAST_GOOD_PLAN
  • Descrição que contém informações sobre por que Mecanismo de Banco de DadosDatabase Engine pensa que essa alteração de plano é uma regressão de desempenho potencialDescription that contains information why Mecanismo de Banco de DadosDatabase Engine thinks that this plan change is a potential performance regression
  • Data e hora quando a regressão potencial é detectadaDatetime when the potential regression is detected
  • Pontuação desta recomendaçãoScore of this recommendation
  • Detalhes sobre os problemas, como ID do plano detectado, ID do plano regredido, o ID do plano que deve ser forçado para corrigir o problema, Transact-SQLTransact-SQL script que possa ser aplicada para corrigir o problema, etc. Os detalhes estão armazenados formato 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 a consulta a seguir para obter um script que corrige o problema e obter informações adicionais sobre a estimados obter: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;

Este é o conjunto de resultados.Here is the result set.

reasonreason scorescore scriptscript consulta_idquery_id plano atual_idcurrent plan_id recomendado plano_idrecommended plan_id estimado_obterestimated_gain Erro_sujeito aerror_prone
Tempo de CPU alterado de 3 ms a ms 46CPU time changed from 3 ms to 46 ms 3636 EXEC sp_consulta_armazenar_forçar_plano 12, 17;EXEC sp_query_store_force_plan 12, 17; 1212 2828 1717 11.5911.59 00

estimated_gain representa o número estimado de segundos que seria economizado se o plano recomendado seria executado em vez do plano atual.estimated_gain represents the estimated number of seconds that would be saved if the recommended plan would be executed instead of the current plan. Plano recomendado deve ser forçado em vez do plano atual, se o ganho for maior que 10 segundos.The recommended plan should be forced instead of the current plan if the gain is greater than 10 seconds. Se houver mais erros (por exemplo, os tempos limite ou execuções anuladas) no plano de que no recomendada planejar, a coluna error_prone seria definido como o valor 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. Plano de sujeito a erro é outra razão por que o plano recomendado deve ser forçado em vez do atual.Error prone plan is another reason why the recommended plan should be forced instead of the current one.

Embora Mecanismo de Banco de DadosDatabase Engine fornece todas as informações necessárias para identificar as regressões de escolha do plano; contínua monitorando e corrigindo problemas de desempenho podem ser um processo entediante.Although Mecanismo de Banco de DadosDatabase Engine provides all information required to identify plan choice regressions; continuous monitoring and fixing performance issues might be a tedious process. O ajuste automático torna esse processo muito mais fácil.Automatic tuning makes this process much easier.

Observação

Dados no DM db_tuning_recommendations DMV não são persistidos entre as reinicializações da SQL ServerSQL Server instância.Data in the sys.dm_db_tuning_recommendations DMV is not persisted between restarts of the SQL ServerSQL Server instance.

Gerenciamento de índice automáticoAutomatic index management

Na Banco de dados SQL do AzureAzure SQL Database, o gerenciamento de índice é fácil porque Banco de dados SQL do AzureAzure SQL Database aprende sobre sua carga de trabalho e garante que seus dados são indexados sempre da melhor forma.In Banco de dados SQL do AzureAzure SQL Database, index management is easy because Banco de dados SQL do AzureAzure SQL Database learns about your workload and ensures that your data is always optimally indexed. Design de índice apropriado é crucial para otimizar o desempenho da carga de trabalho e gerenciamento de índice automático pode ajudá-lo a otimizar seus índices.Proper index design is crucial for optimal performance of your workload, and automatic index management can help you optimize your indexes. Gerenciamento de índice automático pode corrigir problemas de desempenho em bancos de dados indexados incorretamente ou manter e aprimorar os índices no esquema de banco de dados existente.Automatic index management can either fix performance issues in incorrectly indexed databases, or maintain and improve indexes on the existing database schema. Ajuste automático no Banco de dados SQL do AzureAzure SQL Database executa as seguintes ações:Automatic tuning in Banco de dados SQL do AzureAzure SQL Database performs the following actions:

  • Identifica os índices que podem melhorar o desempenho de seu Transact-SQLTransact-SQL as consultas que leem dados das tabelas.Identifies indexes that could improve performance of your Transact-SQLTransact-SQL queries that read data from the tables.
  • Identifica os índices redundantes ou índices que não foram usados em um período mais longo de tempo que pode ser removido.Identifies the redundant indexes or indexes that were not used in longer period of time that could be removed. Removendo índices desnecessários melhora o desempenho das consultas que atualizam dados em tabelas.Removing unnecessary indexes improves performance of the queries that update data in tables.

Por que você precisa de gerenciamento de índice?Why do you need index management?

Os índices aceleram algumas de suas consultas que leem dados das tabelas; No entanto, eles podem retardar as consultas que atualizam dados.Indexes speed up some of your queries that read data from the tables; however, they can slow down the queries that update data. Você precisa analisar cuidadosamente quando criar um índice e quais colunas você precisa incluir no índice.You need to carefully analyze when to create an index and what columns you need to include in the index. Alguns índices podem não ser necessárias mais tarde.Some indexes might not be needed after some time. Portanto, você precisa identificar periodicamente e descartar os índices que não geram nenhum benefício.Therefore, you would need to periodically identify and drop the indexes that do not bring any benefits. Se você ignorar os índices não utilizados, o desempenho das consultas que atualizam dados será reduzido sem nenhum benefício nas consultas de leitura de dados.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. Índices não utilizados também afetam o desempenho geral do sistema porque atualizações adicionais precisam do log desnecessário.Unused indexes also affect overall performance of the system because additional updates require unnecessary logging.

Localizar o conjunto ideal de índices que melhoram o desempenho das consultas que leem dados suas tabelas e tenham impacto mínimo sobre as atualizações pode exigir análise contínua e complexa.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.

Banco de dados SQL do AzureAzure SQL Database usos de inteligência interna e regras avançadas para analisar suas consultas, identifique os índices que seriam ideais para suas cargas de trabalho atuais e os índices podem ser removidos.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. Banco de dados SQL do Azure garante que você tenha um conjunto mínimo necessário de índices que otimizam as consultas que leem dados, com o menor impacto sobre as outras consultas.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.

Gerenciamento de índice automáticoAutomatic index management

Além de detecção, Banco de dados SQL do AzureAzure SQL Database pode aplicar automaticamente as recomendações identificadas.In addition to detection, Banco de dados SQL do AzureAzure SQL Database can automatically apply identified recommendations. Se você achar que as regras internas melhorar o desempenho de seu banco de dados, você pode permitir que Banco de dados SQL do AzureAzure SQL Database gerenciar automaticamente seus índices.If you find that the built-in rules improve the performance of your database, you might let Banco de dados SQL do AzureAzure SQL Database automatically manage your indexes.

Para habilitar o ajuste automático no Banco de Dados SQL do AzureAzure SQL Database e permitir que o recurso de ajuste automático totalmente gerenciar sua carga de trabalho, consulte habilitar o ajuste automático no banco de dados do SQL Azure usando o portal do Azure.To enable automatic tuning in Banco de Dados SQL do 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.

Quando o Banco de dados SQL do AzureAzure SQL Database aplica-se uma recomendação CREATE INDEX ou DROP INDEX, ele automaticamente monitora o desempenho das consultas que são afetados pelo índice.When the Banco de dados SQL do 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. Novo índice será mantido somente se o desempenho das consultas afetadas é aprimorado.New index will be retained only if performances of the affected queries are improved. O índice ignorado será recriado automaticamente se houver algumas consultas que são executados mais lentamente, devido à ausência do índice.Dropped index will be automatically re-created if there are some queries that run slower due to the absence of the index.

Considerações sobre gerenciamento de índice automáticoAutomatic index management considerations

As ações necessárias para criar índices necessários em Banco de dados SQL do AzureAzure SQL Database pode consumir recursos e afetar o desempenho da carga de trabalho temporariamente.Actions required to create necessary indexes in Banco de dados SQL do AzureAzure SQL Database might consume resources and temporally affect workload performance. Para minimizar o impacto da criação de índice no desempenho da carga de trabalho, Banco de Dados SQL do AzureAzure SQL Database localiza a janela de tempo apropriado para qualquer operação de gerenciamento de índice.To minimize the impact of index creation on workload performance, Banco de Dados SQL do AzureAzure SQL Database finds the appropriate time window for any index management operation. Ação de ajuste é adiada Se o banco de dados precisa de recursos para executar sua carga de trabalho e iniciada quando o banco de dados tem suficiente recursos não utilizados que podem ser usados para a tarefa de manutenção.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. Um recurso importante no gerenciamento de índice automático é a verificação das ações.One important feature in automatic index management is a verification of the actions. Quando Banco de Dados SQL do AzureAzure SQL Database cria ou descarta o índice, um processo de monitoramento analisa o desempenho da carga de trabalho para verificar se a ação melhorou o desempenho.When Banco de Dados SQL do AzureAzure SQL Database creates or drops index, a monitoring process analyzes performance of your workload to verify that the action improved the performance. Se ele não gerar uma melhoria significativa, a ação será revertida imediatamente.If it didn't bring significant improvement - the action is immediately reverted. Dessa forma, Banco de Dados SQL do AzureAzure SQL Database garante que ações automáticas não afete negativamente o desempenho da carga de trabalho.This way, Banco de Dados SQL do AzureAzure SQL Database ensures that automatic actions do not negatively impact performance of your workload. Índices criados pelo ajuste automático são transparentes para a operação de manutenção no esquema subjacente.Indexes created by automatic tuning are transparent for the maintenance operation on the underlying schema. Alterações de esquema como remover ou renomear colunas não são bloqueadas pela presença de índices criados automaticamente.Schema changes such as dropping or renaming columns are not blocked by the presence of automatically created indexes. Índices criados automaticamente pelo Banco de Dados SQL do AzureAzure SQL Database são imediatamente descartados quando relacionadas a tabela ou colunas for descartada.Indexes that are automatically created by Banco de Dados SQL do AzureAzure SQL Database are immediately dropped when related table or columns is dropped.

Alternativa – gerenciamento de índice manualAlternative - manual index management

Sem gerenciamento de índice automático, usuário precisaria manualmente consultar DM db_missing_index_details (Transact-SQL) exibir ou usar o relatório no painel de desempenho Management StudioManagement Studio para localizar os índices que podem melhorar o desempenho, criar índices usando os detalhes fornecidos neste modo de exibição e monitorar o desempenho da consulta manualmente.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. Para localizar os índices que devem ser descartados, os usuários devem monitorar estatísticas de uso operacional dos índices para índices de find raramente usado.In order to find the indexes that should be dropped, users should monitor operational usage statistics of the indexes to find rarely used indexes.

Banco de dados SQL do AzureAzure SQL Database simplifica o processo.simplifies this process. Banco de dados SQL do AzureAzure SQL Database analisa sua carga de trabalho, identifica as consultas que podem ser executadas mais rapidamente com um novo índice e identifica os índices duplicados ou não utilizados.analyzes your workload, identifies the queries that could be executed faster with a new index, and identifies unused or duplicated indexes. Encontrar mais informações sobre a identificação de índices que devem ser alterados em encontrar recomendações de índice no portal do Azure.Find more information about identification of indexes that should be changed at Find index recommendations in Azure portal.

Consulte tambémSee 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)
Funções JSON JSON functions
Planos de execução Execution Plans
Monitorar e ajustar o desempenho Monitor and Tune for Performance
Ferramentas para monitoramento e ajuste de desempenho Performance Monitoring and Tuning Tools
Monitorando o desempenho com o repositório de consultasMonitoring Performance By Using the Query Store
Assistente de ajuste de consultaQuery Tuning Assistant