Partilhar via


Query Performance Insight para o Banco de Dados SQL do Azure

Aplica-se a:Banco de Dados SQL do Azure

O Query Performance Insight disponibiliza análise de consultas inteligente para bases de dados individuais e de conjunto. Ajuda a identificar as principais consultas que consomem recursos e de execução prolongada na sua carga de trabalho. Deste modo, ajuda a localizar as consultas que devem ser otimizadas para melhorar o desempenho geral da carga de trabalho e utilizar eficientemente o recurso que está a pagar. O Query Performance Insight ajuda-o a passar menos tempo a resolver problemas de desempenho de bases de dados ao fornecer:

  • Informações mais detalhadas sobre o consumo de recursos de bancos de dados (DTU)
  • Detalhes sobre as principais consultas de banco de dados por CPU, duração e contagem de execução (potenciais candidatos a ajuste para melhorias de desempenho)
  • A capacidade de detalhar detalhes de uma consulta, exibir o texto da consulta e o histórico de utilização de recursos
  • Anotações que mostram recomendações de desempenho de consultores de banco de dados

Captura de ecrã da página Query Performance Insight no portal do Azure.

Pré-requisitos

O Query Performance Insight requer que o Repositório de Consultas esteja ativo em seu banco de dados. Ele é habilitado automaticamente para todos os bancos de dados no Banco de Dados SQL do Azure por padrão. Se o Query Store não estiver em execução, o portal do Azure irá pedir-lhe para o ativar.

Observação

Se a mensagem "O Repositório de Consultas não está configurado corretamente neste banco de dados" aparecer no portal, consulte Otimizando a configuração do Repositório de Consultas.

Permissões

Você precisa das seguintes permissões de controle de acesso baseado em função do Azure (Azure RBAC) para usar o Query Performance Insight:

  • As permissões de Leitor, Proprietário, Colaborador, Colaborador do Banco de Dados SQL ou Colaborador do SQL Server são necessárias para exibir as principais consultas e gráficos que consomem recursos.
  • As permissões de Proprietário, Colaborador, Colaborador do Banco de Dados SQL ou Colaborador do SQL Server são necessárias para exibir o texto da consulta.

Usar o Query Performance Insight

O Query Performance Insight é fácil de usar:

  1. Abra o portal do Azure e localize um banco de dados que você deseja examinar.

  2. No menu do lado esquerdo, abra o Intelligent Performance>Query Performance Insight.

    Captura de ecrã do Query Performance Insight no menu de recursos do portal do Azure.

  3. Na primeira guia, revise a lista das principais consultas que consomem recursos.

  4. Selecione uma consulta individual para exibir seus detalhes.

  5. Abraas recomendações de desempenho> e verifique se há recomendações de desempenho disponíveis. Para obter mais informações sobre recomendações de desempenho internas, consulte Recomendações de desempenho do Supervisor de Banco de Dados para o Banco de Dados SQL do Azure.

  6. Use controles deslizantes ou ícones de zoom para alterar o intervalo observado.

    Captura de ecrã do painel Desempenho no portal do Azure.

Observação

Para que o Banco de Dados SQL do Azure renderize as informações no Query Performance Insight, o Repositório de Consultas precisa capturar algumas horas de dados. Se o banco de dados não tiver atividade ou se o Repositório de Consultas não estiver ativo durante um determinado período, os gráficos ficarão vazios quando o Query Performance Insight exibir esse intervalo de tempo. Você pode habilitar o Repositório de Consultas a qualquer momento se ele não estiver em execução. Para obter mais informações, consulte Práticas recomendadas com o Repositório de Consultas.

Para recomendações de desempenho do banco de dados, selecione Recomendações de desempenho do Supervisor de Banco de Dados para o Banco de Dados SQL do Azure no painel de navegação do Query Performance Insight.

Captura de ecrã do separador Recomendações no portal do Azure.

Analise as principais consultas que consomem CPU

Por padrão, o Query Performance Insight mostra as cinco principais consultas que consomem CPU quando você o abre pela primeira vez.

  1. Marque ou desmarque consultas individuais para incluí-las ou excluí-las do gráfico usando caixas de seleção.

    A linha superior mostra a porcentagem geral de DTU para o banco de dados. As barras mostram a porcentagem de CPU que as consultas selecionadas consumiram durante o intervalo selecionado. Por exemplo, se a opção Semana passada estiver selecionada, cada barra representará um único dia.

    Captura de ecrã das principais consultas no portal do Azure.

    Importante

    A linha DTU mostrada é agregada a um valor máximo de consumo em períodos de uma hora. Destina-se a uma comparação de alto nível apenas com estatísticas de execução de consultas. Em alguns casos, a utilização da DTU pode parecer muito alta em comparação com consultas executadas, mas esse pode não ser o caso.

    Por exemplo, se uma consulta atingiu o máximo de DTU para 100% por apenas alguns minutos, a linha DTU no Query Performance Insight mostrará toda a hora de consumo como 100% (a consequência do valor máximo agregado).

    Para uma comparação mais fina (até um minuto), considere criar um gráfico de utilização de DTU personalizado:

    1. No portal do Azure, selecione Monitoramento do Banco de Dados>SQL do Azure.
    2. Selecione Métricas.
    3. Selecione +Adicionar gráfico.
    4. Selecione a porcentagem de DTU no gráfico.
    5. Além disso, selecione Últimas 24 horas no menu superior esquerdo e altere-o para um minuto.

    Use o gráfico DTU personalizado com um nível mais fino de detalhes para comparar com o gráfico de execução de consulta.

    A grade inferior mostra informações agregadas para as consultas visíveis:

    • ID de consulta, que é um identificador exclusivo para a consulta no banco de dados.
    • CPU por consulta durante um intervalo observável, que depende da função de agregação.
    • Duração por consulta, que também depende da função de agregação.
    • Número total de execuções para uma consulta específica.
  2. Se os dados ficarem obsoletos, selecione o botão Atualizar .

  3. Use controles deslizantes e botões de zoom para alterar o intervalo de observação e investigar picos de consumo:

    Captura de ecrã a mostrar a utilização de controlos de deslize e botões de zoom para alterar o intervalo no portal do Azure.

  4. Opcionalmente, você pode selecionar a guia Personalizar para personalizar a exibição para:

    • Métrica (CPU, duração, contagem de execução).
    • Intervalo de tempo (últimas 24 horas, semana passada ou mês passado).
    • Número de consultas.
    • Função de agregação.

    Captura de ecrã do separador personalizado no portal do Azure.

  5. Selecione o botão Ir > para ver a vista personalizada.

    Importante

    O Query Performance Insight está limitado a exibir as 5 a 20 principais consultas consumidoras, dependendo da sua seleção. Seu banco de dados pode executar muito mais consultas além das principais mostradas, e essas consultas não serão incluídas no gráfico.

    Pode existir um tipo de carga de trabalho de banco de dados em que muitas consultas menores, além das principais mostradas, são executadas com frequência e usam a maioria das DTU. Essas consultas não aparecem no gráfico de desempenho.

    Por exemplo, uma consulta pode ter consumido uma quantidade substancial de DTU por um tempo, embora seu consumo total no período observado seja menor do que as outras consultas de consumo superior. Nesse caso, a utilização de recursos dessa consulta não apareceria no gráfico.

    Se você precisar entender as principais execuções de consulta além das limitações do Query Performance Insight, considere o uso do inspetor de banco de dados para monitoramento avançado do desempenho do banco de dados e solução de problemas.

Ver detalhes individuais da consulta

Para visualizar os detalhes da consulta:

  1. Selecione qualquer consulta na lista das principais consultas.

    Captura de ecrã que lista as principais consultas no portal do Azure.

    Abre-se uma vista detalhada. Ele mostra o consumo da CPU, a duração e a contagem de execução ao longo do tempo.

  2. Selecione os recursos do gráfico para obter detalhes.

    • O gráfico superior mostra uma linha com a porcentagem geral de DTU do banco de dados. As barras são a porcentagem de CPU que a consulta selecionada consumiu.
    • O segundo gráfico mostra a duração total da consulta selecionada.
    • O gráfico inferior mostra o número total de execuções pela consulta selecionada.

    Captura de ecrã dos detalhes da Consulta no portal do Azure.

  3. Opcionalmente, use controles deslizantes, use botões de zoom ou selecione Configurações para personalizar como os dados de consulta são exibidos ou para escolher um intervalo de tempo diferente.

    Importante

    O Query Performance Insight não captura nenhuma consulta DDL. Em alguns casos, ele pode não capturar todas as consultas ad hoc.

    Caso seu banco de dados tenha o escopo bloqueado com um bloqueio somente leitura, o painel de detalhes da consulta não poderá ser carregado.

Rever as principais consultas por duração

Duas métricas no Query Performance Insight podem ajudá-lo a encontrar possíveis gargalos: duração e contagem de execução.

As consultas de longa duração têm o maior potencial para bloquear recursos por mais tempo, bloquear outros usuários e limitar a escalabilidade. Eles também são os melhores candidatos para otimização. Para obter mais informações, consulte Compreender e resolver problemas de bloqueio.

Para identificar consultas de longa duração:

  1. Abra a guia Personalizar no Query Performance Insight para o banco de dados selecionado.

  2. Altere as métricas para duração.

  3. Selecione o número de consultas e o intervalo de observação.

  4. Selecione a função de agregação:

    • A soma soma todo o tempo de execução da consulta para todo o intervalo de observação.
    • Max encontra consultas em que o tempo de execução foi máximo para todo o intervalo de observação.
    • O Avg localiza o tempo médio de execução de todas as execuções de consulta e mostra as principais para essas médias.

    Captura de ecrã a mostrar a duração da consulta no portal do Azure.

  5. Selecione o botão Ir > para ver a vista personalizada.

    Importante

    O ajuste do modo de exibição de consulta não atualiza a linha DTU. A linha DTU sempre mostra o valor máximo de consumo para o intervalo.

    Para entender o consumo de DTU do banco de dados com mais detalhes (até um minuto), considere criar um gráfico personalizado no portal do Azure:

    1. Selecione Monitoramento do Banco de Dados>SQL do Azure.
    2. Selecione Métricas.
    3. Selecione +Adicionar gráfico.
    4. Selecione a porcentagem de DTU no gráfico.
    5. Além disso, selecione Últimas 24 horas no menu superior esquerdo e altere-o para um minuto.

    Recomendamos que você use o gráfico DTU personalizado para comparar com o gráfico de desempenho da consulta.

Revisar as principais consultas por contagem de execução

Um aplicativo de usuário que usa o banco de dados pode ficar lento, mesmo que um alto número de execuções possa não estar afetando o próprio banco de dados e o uso de recursos seja baixo.

Em alguns casos, uma alta contagem de execução pode levar a mais viagens de ida e volta da rede. As viagens de ida e volta afetam o desempenho. Eles estão sujeitos à latência da rede e à latência do servidor downstream.

Por exemplo, muitos sites orientados por dados acessam fortemente o banco de dados para cada solicitação do usuário. Embora o pool de conexões ajude, o aumento do tráfego de rede e da carga de processamento no servidor pode diminuir o desempenho. Em geral, mantenha as viagens de ida e volta ao mínimo.

Para identificar consultas executadas com frequência ("tagarelas"):

  1. Abra a guia Personalizar no Query Performance Insight para o banco de dados selecionado.

  2. Altere as métricas para contagem de execução.

  3. Selecione o número de consultas e o intervalo de observação.

  4. Selecione o botão Ir > para ver a vista personalizada.

    Captura de tela mostrando a contagem de execução de consulta no portal do Azure.

Compreender as anotações de ajuste de desempenho

Ao explorar sua carga de trabalho no Query Performance Insight, você pode notar ícones com uma linha vertical na parte superior do gráfico.

Estes ícones são anotações. Eles mostram recomendações de desempenho do Supervisor de Banco de Dados recomendações de desempenho para o Banco de Dados SQL do Azure. Ao passar o mouse sobre uma anotação, você pode obter informações resumidas sobre recomendações de desempenho.

Captura de ecrã da anotação de consulta no portal do Azure.

Se quiser entender mais ou aplicar a recomendação do orientador, selecione o ícone para abrir os detalhes da ação recomendada. Se esta for uma recomendação ativa, pode aplicá-la imediatamente a partir do portal.

Captura de ecrã a mostrar detalhes da anotação de consulta no portal do Azure.

Em alguns casos, devido ao nível de zoom, é possível que anotações próximas umas das outras sejam recolhidas em uma única anotação. O Query Performance Insight representa isso como um ícone de anotação de grupo. Selecionar o ícone de anotação de grupo abre um novo painel que lista as anotações.

Correlacionar consultas e ações de ajuste de desempenho pode ajudá-lo a entender melhor sua carga de trabalho.

Otimizar a configuração do Repositório de Consultas

Ao usar o Query Performance Insight, você pode ver as seguintes mensagens de erro do Query Store:

  • "O Repositório de Consultas não está configurado corretamente neste banco de dados. Selecione aqui para saber mais."
  • "O Repositório de Consultas não está configurado corretamente neste banco de dados. Selecione aqui para alterar as configurações."

Essas mensagens geralmente aparecem quando o Repositório de Consultas não consegue coletar novos dados.

O primeiro caso acontece quando o Repositório de Consultas está no estado somente leitura e os parâmetros são definidos de forma otimizada. Você pode corrigir isso aumentando o tamanho do armazenamento de dados ou limpando o Repositório de Consultas. (Se você limpar o Repositório de Consultas, toda a telemetria coletada anteriormente será perdida.)

Captura de ecrã a mostrar os detalhes do Repositório de Consultas no portal do Azure.

O segundo caso acontece quando o Repositório de Consultas não está habilitado ou os parâmetros não são definidos de forma ideal. Você pode alterar a política de retenção e captura e também habilitar o Repositório de Consultas, executando os seguintes comandos T-SQL fornecidos pelo editor de consultas do portal do Azure, SQL Server Management Studio (SSMS),sqlcmd ou a ferramenta cliente de sua escolha.

Existem dois tipos de políticas de retenção:

  • Com base no tamanho: se esta política estiver definida como AUTO, ela limpará os dados automaticamente quando o tamanho próximo do máximo for atingido.
  • Com base no tempo: por padrão, essa política é definida como 30 dias. Se o Repositório de Consultas ficar sem espaço, ele excluirá as informações de consulta com mais de 30 dias.

Você pode definir a política de captura para:

  • Todos: o Repositório de Consultas captura todas as consultas.
  • Automático: o Repositório de Consultas ignora consultas pouco frequentes e consultas com duração de compilação e execução insignificantes. Os limites para contagem de execução, duração da compilação e duração do tempo de execução são determinados internamente. Esta é a opção padrão.
  • Nenhum: o Repositório de Consultas para de capturar novas consultas, mas as estatísticas de tempo de execução para consultas já capturadas ainda são coletadas.

Recomendamos definir todas as políticas e a política de limpeza para AUTO 30 dias executando os seguintes comandos do SSMS ou do portal do Azure. (Substitua YourDB pelo nome do banco de dados.)

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (SIZE_BASED_CLEANUP_MODE = AUTO);

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 30));

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (QUERY_CAPTURE_MODE = AUTO);

Aumente o tamanho do Repositório de Consultas conectando-se a um banco de dados por meio do SSMS ou do portal do Azure e executando a consulta a seguir. (Substitua YourDB pelo nome do banco de dados.)

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (MAX_STORAGE_SIZE_MB = 1024);

A aplicação dessas configurações acabará fazendo com que o Repositório de Consultas colete telemetria para novas consultas. Se precisar que o Repositório de Consultas esteja operacional imediatamente, você pode, opcionalmente, optar por limpar o Repositório de Consultas executando a seguinte consulta por meio do SSMS ou do portal do Azure. (Substitua YourDB pelo nome do banco de dados.)

Observação

A execução da consulta a seguir excluirá toda a telemetria monitorada coletada anteriormente no Repositório de Consultas.

    ALTER DATABASE [YourDB] SET QUERY_STORE CLEAR;

Próximo passo