Descrever o ajuste automático
O ajuste automático é um recurso de monitoramento e análise que aprende continuamente sobre sua carga de trabalho e identifica possíveis problemas e melhorias.
As recomendações de ajuste automático são baseadas nos dados coletados do Repositório de Consultas. Os planos de execução evoluem ao longo do tempo devido a alterações de esquema, modificações de índice ou alterações nos dados que causam atualizações nas estatísticas. Essa evolução pode fazer com que as consultas tenham um desempenho insatisfatório, pois o plano de execução não atende mais às demandas da consulta dada.
Além disso, o ajuste automático permite reunir e aplicar serviços de aprendizado de máquina em relação a métricas de desempenho para fornecer melhorias sugeridas ou até mesmo permitir a autocorreção.
Seja no local ou na nuvem, o ajuste automático permite identificar problemas causados pela regressão do plano de execução de consultas. Além disso, no Banco de Dados SQL do Azure, você pode melhorar o desempenho da consulta ajustando o índice. O ajuste automático do Banco de Dados SQL do Azure pode identificar índices que devem ser adicionados ou até mesmo removidos do banco de dados para aprimorar o desempenho da consulta.
Correção automática do plano
Com a ajuda dos dados do Repositório de Consultas, o mecanismo de banco de dados pode determinar quando os planos de execução da consulta regrediram em desempenho. Embora você possa identificar manualmente um plano regressado por meio da interface do usuário, o Repositório de Consultas também oferece a opção de notificá-lo automaticamente.
No exemplo acima, você pode ver uma marca de seleção no Plano ID 1, o que significa que o plano foi forçado. Depois que o recurso estiver habilitado, o mecanismo de banco de dados forçará automaticamente qualquer plano de execução de consulta recomendado, quando:
- O plano anterior apresentava uma taxa de erro mais elevada do que o plano recomendado
- O ganho estimado da CPU foi superior a 10 segundos
- O plano de força teve um desempenho melhor do que o anterior
O plano será revertido para o último plano em boas condições após 15 execuções da consulta.
Quando a imposição de plano ocorre automaticamente, o mecanismo de banco de dados aplicará o último plano válido conhecido e também continuará a monitorar o desempenho do plano de execução de consulta. Se o plano forçado não tiver um desempenho melhor do que o plano anterior, ele será então não forçado e forçará um novo plano a ser compilado. Se o plano forçado continuar a superar o plano anteriormente ruim, ele permanecerá forçado até que ocorra uma recompilação.
Você pode habilitar a correção automática de plano por meio de uma consulta T-SQL, conforme mostrado abaixo. O Repositório de Consultas deve estar habilitado e no modo de Leitura-Gravação para que o comando seja bem-sucedido. Se qualquer um desses dois critérios não for atendido, a instrução ALTER falhará.
ALTER DATABASE [WideWorldImporters] SET AUTOMATIC_TUNING (FORCE_LAST_GOOD_PLAN = ON);
Você pode examinar as recomendações de ajuste automático por meio de um modo de exibição de gerenciamento dinâmico (DMV), sys.dm_db_tuning_recommendations
que está disponível no SQL Server 2017 ou superior e também está disponível em soluções do Banco de Dados SQL do Azure. Este Detran fornece informações como os motivos pelos quais a recomendação foi fornecida, o tipo de recomendação e o estado da recomendação. Para confirmar se o ajuste automático está habilitado para um banco de dados, verifique a exibição sys.database_automatic_tuning_options
.
Gerenciamento automático de índice
O Banco de Dados SQL do Azure pode executar o ajuste automático de índice. Com o tempo, o banco de dados aprenderá sobre as cargas de trabalho existentes e fornecerá recomendações sobre como adicionar ou remover índices para fornecer um melhor desempenho. Como forçar planos de consulta aprimorados, o banco de dados pode ser configurado para permitir a criação ou remoção automática de índices, dependendo do desempenho do índice existente, conforme mostrado abaixo:
Quando habilitada, a página Recomendações de Desempenho identificará os índices que podem ser criados ou descartados dependendo do desempenho da consulta. Lembre-se de que esse recurso não está disponível para bancos de dados locais e só está disponível para o Banco de Dados SQL do Azure.
Como alternativa, use a seguinte consulta para ver os recursos de ajuste automático habilitados em seu banco de dados:
SELECT name,
desired_state_desc,
actual_state_desc,
reason_desc
FROM sys.database_automatic_tuning_options
A criação de novos índices pode consumir recursos, e o tempo das criações de índices é fundamental para garantir que nenhum efeito negativo seja sentido em suas cargas de trabalho.
O Banco de Dados SQL do Azure monitorará os recursos necessários para implementar novos índices para evitar causar degradação do desempenho. A ação de ajuste é adiada até que os recursos disponíveis estejam disponíveis, por exemplo, se os recursos forem necessários para cargas de trabalho existentes e não estiverem disponíveis para criar um índice.
O monitoramento garante que qualquer ação tomada não prejudique o desempenho. Se um índice for descartado e o desempenho da consulta se degradar visivelmente, o índice descartado recentemente será recriado automaticamente.