Descrever o ajuste automático

Concluído

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.

Captura de ecrã da vista Repositório de Consultas para correção de plano regredido.

No exemplo acima, pode-se ver uma marca de verificaçã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 acontece automaticamente, o mecanismo de banco de dados aplica o último plano válido conhecido e monitoriza o desempenho da execução da consulta. Se o plano forçado não tiver um desempenho melhor do que o anterior, ele não será forçado e um novo plano será compilado. No entanto, se o plano forçado continuar a superar o plano ruim anterior, ele permanecerá no lugar até que ocorra uma recompilação.

Você pode habilitar a correção automática do plano por meio de uma consulta T-SQL. 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_recommendationsque 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 tem a capacidade de executar o ajuste automático de índice. Com o tempo, ele aprende com as cargas de trabalho existentes e fornece recomendações para adicionar ou remover índices para melhorar o desempenho. Semelhante a forçar planos de consulta aprimorados, o banco de dados pode ser configurado para criar ou remover índices automaticamente com base em seu desempenho, conforme mostrado na imagem a seguir.

Captura de ecrã das Opções de Ajuste Automático para a Base de Dados SQL do Azure.

Quando habilitada, a página Recomendações de Desempenho identifica í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 monitora 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.