Recomendações de desempenho do Supervisor de 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 maximizar o desempenho. Esses consultores de banco de dados avaliam e analisam continuamente o histórico de uso e fornecem recomendações com base em padrões de carga de trabalho que ajudam a melhorar o desempenho.

Descrição geral do desempenho

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

  • Se estiver presente, o bloco Recomendações fornece um detalhamento das recomendações de ajuste para seu banco de dados. Selecionar este bloco leva você às opções de recomendação de desempenho.
  • O bloco Atividade de ajuste fornece um resumo das ações de ajuste em andamento e concluídas para seu banco de dados, oferecendo uma visualização rápida do histórico da atividade de ajuste. A seleção desse bloco leva você às recomendações e ao histórico de ajustes do seu banco de dados. Para obter mais informações, consulte Ajuste automático.
  • O bloco Ajuste automático mostra a configuração de ajuste automático para seu banco de dados (opções de ajuste que são aplicadas automaticamente ao seu banco de dados). Selecionar este bloco abre a caixa de diálogo de configuração de automação. Para obter mais informações sobre o ajuste automático de índices de banco de dados e planos de execução de consulta, consulte Ajuste automático.
  • O bloco Consultas de banco de dados mostra o resumo do desempenho da consulta para seu banco de dados (uso geral de DTU e consultas que consomem mais recursos). Selecionar esse bloco leva você ao Query Performance Insight.
  • 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 de várias linhas 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 das quais representa um plano de consulta em cache. Mergulhe na página Query Performance Insight e identifique as consultas mais caras em sua carga de trabalho. Para obter mais informações, consulte Query Performance Insights.

Navegue até a página Visão geral do desempenho em Desempenho inteligente no menu de navegação do portal do Azure para 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 único e banco de dados em pool Suporte ao banco de dados de instâncias
Criar recomendações de índice - Recomenda a criação de índices que podem melhorar o desempenho da sua carga de trabalho. Sim No
Recomendações de queda de índice - Recomenda a remoção de índices redundantes e duplicados diariamente, exceto para índices exclusivos e índices que não são usados há muito tempo (>90 dias). Observe que essa opção não é compatível com aplicativos que usam comutação de partição e dicas de índice. Não há suporte para a eliminação de índices não utilizados para as camadas de serviço Premium e Business Critical. Sim No
Parametrizar recomendações de consultas (visualização) - Recomenda parametrização forçada nos casos em que você tem uma ou mais consultas que estão sendo constantemente recompiladas, mas acabam com o mesmo plano de execução de consulta. Sim No
Corrigir recomendações de problemas de esquema (visualização) - As recomendações para correção de esquema aparecem quando o Banco de Dados SQL do Azure percebe uma anomalia no número de erros SQL relacionados ao esquema que estão acontecendo em seu banco de dados. No momento, a Microsoft está substituindo as recomendações "Corrigir problema de esquema". Sim No

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

Para aplicar recomendações de desempenho, consulte Aplicando recomendações. Para exibir o status das recomendações, consulte Monitoramento de operações.

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

Criar recomendações de índice

A Base de Dados SQL do Azure monitoriza continuamente as consultas em execução e identifica os índices que podem melhorar o desempenho. Depois que houver confiança suficiente de que um determinado índice está faltando, uma nova recomendação Criar índice é criada.

O Banco de Dados SQL do Azure cria confiança estimando o ganho de desempenho que o índice traria ao longo do tempo. Dependendo do ganho de desempenho estimado, as recomendações são categorizadas como altas, médias ou baixas.

Os índices criados através de recomendações são sempre sinalizados como índices criados automaticamente. Pode ver quais os índices criados automaticamente na vista sys.indexes. Os índices criados automaticamente não bloqueiam os comandos ALTER/RENAME.

Se você tentar soltar a coluna que tem um índice criado automaticamente sobre ela, o comando passará. O índice criado automaticamente também é descartado com o comando. Os índices regulares bloqueiam o comando ALTER/RENAME em colunas indexadas.

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

Qualquer recomendação de criação de índice tem uma política de back-off que não permite a aplicação da recomendação se o uso de recursos de um banco de dados ou pool for alto. A política de back-off leva em conta CPU, E/S de dados, E/S de log e armazenamento disponível.

Se CPU, E/S de dados ou E/S de log for superior a 80% nos 30 minutos anteriores, a recomendação de criação de índice será adiada. Se o armazenamento disponível estiver abaixo de 10% após a criação do índice, a recomendação entrará em estado de erro. Se depois de alguns dias o ajuste automático ainda acredita que o índice seria benéfico, o processo começa novamente.

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

Recomendações de queda do índice

Além de detetar índices em falta, a Base de Dados SQL do Azure analisa continuamente o desempenho dos índices existentes. Se não for utilizado nenhum índice, a Base de Dados SQL do Azure recomenda a sua remoção. A remoção de um índice é recomendada em dois casos:

  • O índice é um duplicado de outro índice (a mesma coluna indexada e incluída, esquema de partição e filtros).
  • O índice não é utilizado há um período prolongado (>90 dias).

As recomendações do índice de queda também passam pela verificação após a implementação. Se o desempenho melhorar, o relatório de impacto ficará disponível. Se o desempenho se degradar, a recomendação será revertida.

Parametrizar recomendações de consultas (visualização)

As recomendações de parametrizar consultas aparecem quando você tem uma ou mais consultas que estão sendo constantemente recompiladas, mas acabam com o mesmo plano de execução de consulta. Esta condição cria uma oportunidade para aplicar parametrização forçada. A parametrização forçada, por sua vez, permite que os planos de consulta sejam armazenados em cache e reutilizados no futuro, o que melhora o desempenho e reduz o uso de recursos.

Cada consulta inicialmente precisa ser compilada para gerar um plano de execução. Cada plano gerado é adicionado ao cache do plano. Execuções subsequentes da mesma consulta podem reutilizar esse plano do cache, o que elimina a necessidade de compilação adicional.

As consultas com valores não parametrizados podem levar a custos de desempenho, pois o plano de execução é recompilado sempre 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, estes planos são adicionados em separado à cache de planos.

O processo de recompilação de planos de execução utiliza recursos da base de dados, aumenta o tempo de duração da consulta e excede a capacidade da cache de planos. Por sua vez, estes eventos fazem com que os planos sejam removidos da cache. Esse comportamento pode ser alterado definindo a opção de parametrização forçada no banco de dados.

Para ajudá-lo a estimar o impacto dessa recomendação, você recebe uma comparação entre o uso real da CPU e o uso projetado da CPU (como se a recomendação fosse aplicada). Esta recomendação pode ajudá-lo a obter economias de CPU. Ele também pode ajudá-lo a diminuir a duração da consulta e a sobrecarga para o cache do plano, o que significa que mais planos podem permanecer no cache e ser reutilizados. Você pode aplicar essa recomendação rapidamente selecionando o comando Aplicar .

Depois de aplicar essa recomendação, ela habilita a parametrização forçada em poucos minutos no banco de dados. Inicia-se o processo de monitorização, que dura aproximadamente 24 horas. Após esse período, você poderá ver o relatório de validação. Este relatório mostra o uso da CPU do seu banco de dados 24 horas antes e depois da recomendação ter sido aplicada. O Supervisor do Banco de Dados SQL do Azure tem um mecanismo de segurança que reverte automaticamente a recomendação aplicada se a regressão de desempenho tiver sido detetada.

Corrigir recomendações de problemas de esquema (visualização)

Importante

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

As recomendações de corrigir problemas de esquema aparecem quando o Banco de Dados SQL do Azure percebe uma anomalia no número de erros SQL relacionados ao esquema que estão acontecendo em seu banco de dados. Essa recomendação geralmente aparece quando o banco de dados encontra vários erros relacionados ao esquema (nome de coluna inválido, nome de objeto inválido e assim por diante) dentro de uma hora.

"Problemas de esquema" são uma classe de erros de sintaxe. Eles ocorrem quando a definição da consulta SQL e a definição do esquema de 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 "Corrigir problema de esquema" aparece quando o Banco de Dados SQL do Azure percebe uma anomalia no número de erros SQL relacionados ao esquema que estão acontecendo em seu banco de dados. A tabela a seguir mostra os erros relacionados a problemas de esquema:

Código de erro SQL Mensagem
201 Procedimento ou função '' espera parâmetro '', que não foi fornecido.
207 Nome da coluna inválido '*'.
208 Nome do 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 Procedimento ou função * tem muitos argumentos especificados.

Aplicações personalizadas

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óximos passos

  • Para obter mais informações sobre o ajuste automático de índices de banco de dados e planos de execução de consulta, consulte Ajuste automático do Banco de Dados SQL do Azure.
  • Para obter mais informações sobre como monitorar automaticamente o desempenho do banco de dados com diagnósticos automatizados e análise de causa raiz de problemas de desempenho, consulte Azure SQL Intelligent Insights.
  • Consulte Query Performance Insights para saber mais sobre e ver o impacto no desempenho das suas principais consultas.