Partilhar via


Recomendações de desempenho do Database Advisor para Azure SQL Database

Aplica-se a:Banco de Dados SQL do Azure

O Azure SQL Database aprende e adapta-se à sua aplicação. O Azure SQL Database tem vários consultores de bases de dados que fornecem recomendações personalizadas que lhe permitem maximizar o desempenho. Estes consultores de bases de dados avaliam e analisam continuamente o histórico de utilização e fornecem recomendações baseadas em padrões de carga de trabalho que ajudam a melhorar o desempenho.

Visão geral da performance

A visão geral de desempenho no portal Azure fornece um resumo do desempenho da sua base de dados e ajuda-o na afinação e resolução de problemas de desempenho.

  • Se presente, o tile Recomendações fornece um detalhamento das recomendações de otimização para o seu banco de dados. Selecionar esta peça leva-o às opções de recomendação de desempenho.
  • O painel de atividade de Ajuste fornece um resumo das ações de ajuste em curso e concluídas para a sua base de dados, dando-lhe uma visão rápida do histórico da atividade de ajuste. Selecionar esta peça leva-o às recomendações e ao histórico de ajustes da sua base de dados. Para mais informações, veja afinação automática.
  • O bloco de Auto-tuning mostra a configuração de auto-tuning para a sua base de dados (opções de ajuste que são automaticamente aplicadas à sua base de dados). Ao selecionar este tile, abre o diálogo de configuração de automação. Para mais informações sobre a afinação automática de índices de bases de dados e planos de execução de consultas, consulte afinação automática.
  • O bloco de consultas à base de dados mostra o resumo do desempenho das consultas para a sua base de dados (utilização total da DTU e consultas que consomem mais recursos). Ao selecionar este tile, aparece o Query Performance Insight.
  • O gráfico padrão oferece uma visão resumida das últimas 24 horas de atividade na base de dados, com opções para ampliar a atividade mais recente. Os gráficos de barras empilhados analisam as principais consultas por CPU, e o gráfico multi-linha 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. Mergulhe na página Query Performance Insight e identifique as consultas mais caras da sua carga de trabalho. Para mais informações, consulte Query Performance Insights.

Navegue até à página Performance overview sob Intelligent Performance no menu de navegação do portal Azure para a base de dados SQL do Azure.

Captura de ecrã do portal do Azure da Visão Geral de Desempenho para a Azure SQL Database.

Opções de recomendação de desempenho

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

Recomendação de desempenho Suporte para bases de dados únicas e bases de dados agrupadas Suporte para base de dados de instância
Crie recomendações de índice - Recomenda a criação de índices que possam melhorar o desempenho da sua carga de trabalho. Yes Não
Recomendações para eliminar índice - Recomenda a remoção diária de índices redundantes e duplicados, exceto para índices únicos e índices que não são usados há muito tempo (>90 dias). Note que esta opção não é compatível com aplicações que utilizam comutação de partições e dicas de índice. Não é suportado eliminar índices não utilizados para níveis de serviço Premium e Business Critical. Yes Não
Recomendações de parametrização de consultas (pré-visualização) - Recomenda a parametrização forçada nos casos em que tem uma ou mais consultas que estão constantemente a ser recompiladas, mas acabam com o mesmo plano de execução da consulta. Yes Não
Recomendações para corrigir problemas de esquema (pré-visualização) - As recomendações para correção de esquema surgem quando a Azure SQL Database depara uma anomalia no número de erros SQL relacionados com o esquema que estão a acontecer na sua base de dados. A Microsoft está atualmente a descontinuar as recomendações "Corrigir problemas de esquema". Yes Não

Uma captura de ecrã do portal Azure mostrando exemplos de recomendações de desempenho para a Azure SQL Database.

Para aplicar recomendações de desempenho, consulte recomendações de aplicação. Para consultar o estado das recomendações, consulte Operações de monitorização.

Também pode encontrar o histórico completo das ações de afinação aplicadas no passado.

Criar recomendações de índice

A Azure SQL Database monitoriza continuamente as consultas em execução e identifica os índices que poderiam melhorar o desempenho. Depois de haver confiança suficiente de que um determinado índice está em falta, é criada uma nova recomendação de Criar índice .

O Azure SQL Database constrói confiança ao estimar 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 alta, média ou baixa.

Índices criados através de recomendações são sempre assinalados como índices criados automaticamente. Pode ver quais os índices que são criados automaticamente ao olhar para a vista sys.indexes. Índices criados automaticamente não bloqueiam comandos ALTER/RENOMEAR.

Se tentares eliminar a coluna que tem um índice criado automaticamente, o comando será executado. O índice criado automaticamente também é eliminado com o comando. Índices regulares bloqueiam o comando ALTER/RENAME nas colunas que estão indexadas.

Após a aplicação da recomendação de criar índice, a Azure SQL Database compara o desempenho das consultas com o desempenho base. Se o novo índice melhorar o desempenho, a recomendação é assinalada como bem-sucedida e o relatório de impacto fica disponível. Se o índice não melhorou o desempenho, é automaticamente revertido. A Azure SQL Database utiliza este processo para garantir que as recomendações melhoram o desempenho da base de dados.

Qualquer recomendação de criar índice tem uma política de recuo que não permite aplicar a recomendação se o uso de recursos de uma base de dados ou pool for elevado. A política de back-off tem em conta CPU, Data IO, Log IO e armazenamento disponível.

Se o CPU, data IO ou log IO for superior a 80% nos 30 minutos anteriores, a recomendação de criar índice é adiada. Se o armazenamento disponível estiver abaixo de 10% após a criação do índice, a recomendação entra num estado de erro. Se após alguns dias o ajuste automático ainda acreditar que o índice seria benéfico, o processo reinicia.

Este processo repete-se até haver armazenamento suficiente disponível para criar um índice, ou até que o índice deixe de ser visto como benéfico.

Recomendações de exclusão de índices

Para além de detetar índices em falta, a Azure SQL Database analisa continuamente o desempenho dos índices existentes. Se um índice não for utilizado, a Azure SQL Database recomenda que o retire. A eliminação de um índice é recomendada em dois casos:

  • O índice é um duplicado de outro índice (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 para exclusão de índices também passam pela verificação após a implementação. Se o desempenho melhorar, o relatório de impacto fica disponível. Se o desempenho se degradar, a recomendação é revertida.

Recomendações de parametrização de consultas de base de dados (prévia)

As recomendações de consultas de parametrização surgem quando tem uma ou mais consultas que estão constantemente a ser recompiladas, mas acabam com o mesmo plano de execução de consultas. Esta 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 armazenados em cache e reutilizados no futuro, o que melhora o desempenho e reduz o uso de recursos.

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

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. Estes planos, no entanto, continuam a ser adicionados separadamente ao acervo de planos.

O processo de recompilação dos planos de execução utiliza recursos da base de dados, aumenta o tempo de duração da consulta e sobrecarrega o cache do plano. Estes eventos, por sua vez, levam à expulsão de planos do esconderijo. Este comportamento pode ser alterado definindo a opção de parametrização forçada na base de dados.

Para o ajudar a estimar o impacto desta recomendação, é-lhe fornecido uma comparação entre o uso real da CPU e o uso projetado da CPU (como se a recomendação tivesse sido aplicada). Esta recomendação pode ajudá-lo a obter poupanças de CPU. Também pode ajudar a reduzir o tempo de duração das consultas e a sobrecarga do cache de planos, o que significa que mais planos podem ser mantidos no cache e reutilizados. Pode aplicar esta recomendação rapidamente selecionando o comando Aplicar .

Depois de aplicar esta recomendação, permite a parametrização forçada em minutos na sua base de dados. Inicia o processo de monitorização, que dura aproximadamente 24 horas. Após este período, pode consultar o relatório de validação. Este relatório mostra a utilização da CPU na sua base de dados 24 horas antes e depois da recomendação ter sido aplicada. O Azure SQL Database Advisor tem um mecanismo de segurança que reverte automaticamente a recomendação aplicada se for detetada regressão de desempenho.

Recomendações para corrigir problemas de esquema (pré-visualização)

Importante

A Microsoft está atualmente a descontinuar as recomendações "Corrigir problemas de esquema".

As recomendações para corrigir problemas de esquema surgem quando a Azure SQL Database depara uma anomalia no número de erros SQL relacionados com o esquema que estão a acontecer na sua base de dados. Esta recomendação surge normalmente quando a sua base de dados encontra múltiplos erros relacionados com o esquema (nome de coluna inválido, nome de objeto inválido, etc.) dentro de uma hora.

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

A recomendação "Corrigir o problema do esquema" surge quando a Azure SQL Database depara uma anomalia no número de erros SQL relacionados com o esquema que estão a acontecer na sua base de dados. A tabela seguinte mostra os erros relacionados com problemas de esquema:

Código de erro SQL Message
201 Procedimento ou função '' espera parâmetro '', que não foi fornecido.
207 Nome da 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 consegui encontrar o procedimento armazenado '*'.
8144 Procedimento ou função * tem demasiados argumentos especificados.

Aplicações personalizadas

Os programadores podem considerar desenvolver aplicações personalizadas usando recomendações de desempenho para a Azure SQL Database. Todas as recomendações listadas no portal para uma base de dados podem ser acedidas através da API Get-AzSqlDatabaseRecommendedAction .

Próximos passos