Recomendações de desempenho do Assistente do Banco de Dados para o Banco de Dados SQL do Azure

Aplica-se a:Banco de Dados SQL do Azure

O Banco de Dados SQL do Azure aprende e se adapta ao seu aplicativo. O Banco de Dados SQL do Azure tem vários consultores de banco de dados que fornecem recomendações personalizadas que permitem que você maximize o desempenho. Esses consultores de banco de dados avaliam e analisam continuamente o histórico de uso e fornecem recomendações baseadas em padrões de carga de trabalho que ajudam a aprimorar o desempenho.

Visão geral do desempenho

A Visão geral do desempenho no portal do Azure fornece um resumo do desempenho do banco de dados e ajuda com o ajuste de desempenho e a solução de problemas.

  • Quando presente, o bloco Recomendações fornece um detalhamento das recomendações de ajuste para o banco de dados. Ao selecionar esse bloco, você é direcionado para as Opções de recomendação de desempenho.
  • O bloco Atividade de ajuste fornece um resumo das atividades de ajuste em andamento e concluídas para o banco de dados, oferecendo uma visão rápida do histórico de atividades de ajuste. Ao selecionar esse bloco, você é direcionado para as recomendações e ao histórico de ajuste do banco de dados. Para saber mais, confira ajuste automático.
  • O bloco Ajuste automático mostra a configuração de ajuste automático para o banco de dados (opções de ajuste que são aplicadas automaticamente ao banco de dados). Ao selecionar esse bloco, a caixa de diálogo de configuração de automação é aberta. Para saber mais sobre o ajuste automático de índices de banco de dados e planos de execução de consulta, confira ajuste automático.
  • O bloco Consultas de banco de dados mostra o resumo do desempenho de consulta do banco de dados (uso geral de DTU e consultas com maior consumo de recursos). Ao selecionar esse bloco, você é direcionado para Análise de Desempenho de Consultas.
  • O gráfico padrão fornece uma visão resumida das últimas 24 horas de atividade do banco de dados, com opções para ampliar a atividade mais recente. Os gráficos de barras empilhadas analisam as principais consultas por CPU, e o gráfico multilinha representa a carga de trabalho por CPU, E/S de dados e E/S de log. Selecione barras empilhadas individuais no gráfico, cada uma representando um plano de consulta em cache. Explore a página de Análise de Desempenho de Consultas e identifique as consultas mais caras na carga de trabalho. Para saber mais, confira Análise de Desempenho de Consultas.

Acesse a página Visão geral do desempenho em Desempenho inteligente no menu de navegação do portal do Azure relativo ao seu Banco de Dados SQL do Azure.

Screenshot from the Azure portal of the Performance Overview for Azure SQL Database.

Opções de recomendação de desempenho

As opções de recomendação de desempenho disponíveis no Banco de Dados SQL do Azure são:

Recomendação de desempenho Suporte a banco de dados individual e banco de dados em pool Suporte a banco de dados de instância
Criar recomendações de índice – recomenda a criação de índices que podem aprimorar o desempenho da carga de trabalho. Sim Não
Recomendações de remoção de índice – Recomenda diariamente a remoção de índices redundantes e duplicados, exceto índices exclusivos e que não são usados há muito tempo (>90 dias). Observe que essa opção não é compatível com aplicativos que usam alternância de partição e dicas de índice. Não há suporte para a remoção de índices não usados para as camadas de serviço Premium e Comercialmente Crítico. Sim Não
Recomendações para parametrizar consultas (versão prévia) – recomenda a parametrização forçada em casos em que você tem uma ou mais consultas que estão constantemente sendo recompiladas, mas terminam com o mesmo plano de execução de consulta. Sim Não
Corrigir recomendações de problemas de esquema (versão prévia) – as recomendações para correção de esquema aparecem quando o Banco de Dados SQL do Azure observa uma anomalia no número de erros SQL relacionados ao esquema que estão ocorrendo no seu banco de dados. A Microsoft está atualmente substituindo recomendações do tipo "Corrigir problema de esquema". Sim Não

A screenshot from the Azure portal showing sample performance recommendations for Azure SQL Database.

Para aplicar recomendações de desempenho, consulte aplicar recomendações. Para exibir o status das recomendações, consulte Operações de monitoramento.

Você também pode encontrar o histórico completo de ajuste de ações que foram aplicadas no passado.

Criar recomendações de índice

O Banco de Dados SQL do Azure monitora continuamente as consultas que estão sendo executadas e identifica os índices que podem aprimorar o desempenho. Após haver certeza suficiente de que um determinado índice está ausente, uma nova recomendação Criar índice é criada.

O Banco de Dados SQL do Azure aumenta a confiança estimando o ganho de desempenho que o índice trará ao longo do tempo. Dependendo do ganho de desempenho estimado, as recomendações são categorizadas como alta, média ou baixa.

Índices criados usando recomendações sempre são sinalizados como índices criados automaticamente. Você pode ver quais índices são criados automaticamente examinando a exibição sys.indexes. Os índices criados automaticamente não bloqueiam os comandos ALTER/RENAME.

Se você tentar descartar a coluna que tem um índice criado automaticamente por ela, o comando é passado. O índice criado automaticamente é descartado com o comando também. Índices regulares bloqueiam o comando ALTER/RENAME em colunas que são indexadas.

Depois que a recomendação para criar índice for aplicada, o Banco de Dados SQL do Azure comparará o desempenho das consultas com o desempenho de linha de base. Se o novo índice melhorar o desempenho, a recomendação será sinalizada como bem-sucedida e o relatório de impacto será disponibilizado. Se o índice não aprimorou o desempenho, ele é revertido automaticamente. O Banco de Dados SQL do Azure usa esse processo para garantir que as recomendações aprimorem o desempenho do banco de dados.

Qualquer recomendação criar índice tem uma política de retirada que não permite aplicar a recomendação se o uso de recursos de um banco de dados ou pool estiver alto. A política de retirada leva em conta CPU, E/S de Dados, E/S de Log e armazenamento disponível.

Se CPU, E/S de dados ou log de E/S for maior do que 80% nos 30 minutos anteriores, a recomendação para criar índice será adiada. Se o armazenamento disponível for inferior a 10% após o índice ser criado, a recomendação entrará em estado de erro. Se, após alguns dias, o ajuste automático ainda considerar o índice benéfico, o processo será reiniciado.

Esse processo se repetirá até que não haja armazenamento suficiente disponível para criar um índice ou até que o índice não seja visto mais como benéfico.

Recomendações para Remover Índice

Além de detectar um índice ausente, o Banco de Dados SQL do Azure analisa continuamente o desempenho dos índices existentes. Se um índice não for usado, o banco de dados SQL do Azure recomendará cancelá-lo. Descartar um índice é recomendado em dois casos:

  • O índice é uma duplicata de outro índice (mesma coluna indexada e incluída, esquema de partição e filtros).
  • O índice não foi usado por um período prolongado (>90 dias).

Recomendações para Remover Índice também passam por verificação após a implementação. Se o desempenho melhorar, o relatório de impacto ficará disponível. Se o desempenho diminuir, a recomendação será revertida.

Recomendações para parametrizar consultas (versão prévia)

Recomendações para Parametrizar consultas aparecem quando o serviço de Banco de Dados SQL detecta que você tem uma ou mais consultas que estão constantemente sendo recompiladas, mas terminam com o mesmo plano de execução de consulta. Essa condição cria uma oportunidade para aplicar a parametrização forçada. A parametrização forçada, por sua vez, permite que os planos de consulta sejam armazenadas em cache e reutilizados no futuro, o que melhora o desempenho e reduz o uso de recursos.

Inicialmente, as consultas precisam ser compiladas para gerar um plano de execução. Cada plano gerado é adicionado ao cache de planos. As execuções subsequentes da mesma consulta poderão reutilizar esse plano pelo cache, o que elimina a necessidade de compilações adicionais.

Consultas com valores não parametrizados podem levar a sobrecarga de desempenho porque o plano de execução é recompilado cada vez que os valores não parametrizados são diferentes. Em muitos casos, as mesmas consultas com valores de parâmetros diferentes geram os mesmos planos de execução. No entanto, esses planos ainda são adicionados separadamente ao cache de planos.

O processo de recompilação dos planos de execução usa recursos do banco de dados, aumenta o tempo de duração da consulta e estoura o cache de planos. Esses eventos, por sua vez, fazem com que os planos sejam removidos do cache. Esse comportamento pode ser alterado ao definir a opção de parametrização forçada no banco de dados.

Para ajudá-lo a estimar o impacto dessa recomendação, você receberá uma comparação entre o uso real da CPU e o uso projetado da CPU (como se a recomendação tivesse sido aplicada). Essa recomendação pode ajudá-lo a obter uma economia de CPU. Ela também pode ajudar a reduzir a duração da consulta e a sobrecarga para o cache de planos, o que significa que mais dos planos podem permanecer no cache e ser reutilizados. Você pode aplicar essa recomendação com rapidez selecionando o comando Aplicar.

Depois de aplicar essa recomendação, ele permite a parametrização forçada em minutos no banco de dados. Ele inicia o processo de monitoramento, que dura aproximadamente 24 horas. Após esse período, você pode ver o relatório de validação. Este relatório mostra o uso da CPU de seu banco de dados 24 horas antes e depois que a recomendação foi aplicada. O Assistente do Banco de Dados SQL do Azure tem um mecanismo de segurança que reverte a recomendação aplicada automaticamente se uma regressão de desempenho é detectada.

Recomendações para corrigir problemas do esquema (versão prévia)

Importante

A Microsoft está atualmente substituindo recomendações do tipo "Corrigir problema de esquema". Recomendamos que você use o Intelligent Insights para monitorar seus problemas de desempenho do banco de dados, incluindo problemas de esquema que as recomendações de "Corrigir problemas do esquema" abordaram anteriormente.

Recomendações para corrigir problemas do esquema aparecem quando o Banco de Dados SQL do Azure observa uma anomalia no número de erros de SQL relacionados ao esquema que estão ocorrendo no banco de dados. Essa recomendação normalmente aparece quando seu banco de dados encontra vários erros relacionados ao esquema (nome da coluna inválido, nome do objeto inválido e assim por diante) no período de uma hora.

"Problemas do esquema" são uma classe de erros de sintaxe. Eles ocorrem quando a definição da consulta SQL e a definição do esquema do banco de dados não estão alinhadas. Por exemplo, uma das colunas esperadas pela consulta pode estar faltando na tabela de destino ou vice-versa.

A recomendação para "Corrigir problemas do esquema" aparece quando o Banco de Dados SQL do Azure observa uma anomalia no número de erros de SQL relacionados ao esquema ocorrendo no banco de dados. A tabela a seguir mostra os erros relacionados a problemas de esquema:

Código do erro SQL Mensagem
201 Procedimento ou função '' espera o parâmetro '', que não foi fornecido.
207 Nome de coluna inválido '*'.
208 Nome de objeto inválido '*'.
213 O nome da coluna ou o número de valores fornecidos não corresponde à definição da tabela.
2812 Não foi possível encontrar o procedimento armazenado '*'.
8144 Função ou procedimento * tem muitos argumentos especificados.

Aplicativos personalizados

Os desenvolvedores podem considerar o desenvolvimento de aplicativos personalizados usando recomendações de desempenho para o Banco de Dados SQL do Azure. Todas as recomendações listadas no portal para um banco de dados podem ser acessadas por meio da API Get-AzSqlDatabaseRecommendedAction.

Próximas etapas