Usar o Hub de Desempenho para Analisar o Desempenho de SQL

Você pode usar o Hub de Desempenho para monitorar e analisar o desempenho de SQL e obter maior visibilidade dos problemas de desempenho.

O Hub de Desempenho dos sistemas de banco de dados HeatWave e Externo MySQL exibe informações da instrução SQL para o período selecionado. Usando o Hub de Desempenho, você pode melhorar o desempenho de seus aplicativos de banco de dados monitorando o desempenho da consulta. Ele permite que você identifique com precisão o código SQL que é a causa raiz de uma lentidão e melhore o código SQL durante o desenvolvimento ativo, bem como monitore e ajuste continuamente as consultas em execução nos sistemas de produção.

Para ir para o Hub de Desempenho, clique em Hub de Desempenho na página MySQL detalhes do banco de dados no Database Management. Para obter informações, consulte Monitorar um Único Sistema de BD HeatWave ou Externo MySQL.

Observação

  • Para um sistema de banco de dados HeatWave ativado para Database Management, você também pode acessar o Hub de Desempenho na página Detalhes do sistema de banco de dados no serviço HeatWave.
  • Para sistemas de banco de dados HeatWave, determinados recursos do Hub de Desempenho, como Plano de explicação e Detalhes do erro de digitação, só estarão disponíveis se a opção Monitoramento completo tiver sido selecionada ao ativar o Database Management. Para obter informações, consulte Ativar o Serviço Database Management para HeatWave.
  • Para sistemas de banco de dados externos MySQL, certifique-se de que as variáveis e tabelas necessárias estejam configuradas na configuração do MySQL e você tenha os privilégios necessários para executar tarefas como exibir detalhes de erro de execução e o plano de explicação. Para obter informações, consulte Executar Tarefas de Pré-requisitos Relacionadas ao Sistema de Banco de Dados MySQL Externo.

No Hub de Desempenho, selecione uma opção na lista drop-down Última visita para especificar a duração para a qual você deseja monitorar a atividade SQL e exibir as últimas instruções SQL vistas. Se você selecionar a opção Personalizado na lista drop-down Último visto, poderá especificar uma duração personalizada no último período de sete dias. O campo Intervalo de tempo exibe o período, dependendo da opção Última visita selecionada. Você também pode clicar no campo Intervalo de tempo para especificar uma duração personalizada no último período de sete dias. Para atualizar os dados no Hub de Desempenho, clique em Atualizar no canto superior direito.

Com base no período selecionado, as informações relevantes são exibidas nos seguintes gráficos e seção:

  • Média de latência de instrução (segundos): Exibe a média de latência (em segundos) das instruções SQL executadas no sistema de banco de dados.

    Clique em Selecionar gráficos no canto superior direito e selecione Contagem de demonstrativos para exibir o gráfico Contagem de demonstrativos. Este gráfico exibe o número total de instruções SQL executadas no sistema de banco de dados, durante o período selecionado. Para um sistema de banco de dados HeatWave, o gráfico Contagem de instruções também exibe o número de instruções SQL transferidas para HeatWave para execução.

  • 100 Principais por <indicador>: Exibe as informações resumidas agregadas das principais instruções SQL com base em um indicador selecionado, como latência média da instrução, contagem total de execução ou status de execução. Na seção 100 Principais por <indicador>, você pode selecionar um indicador para classificar e monitorar instruções SQL por essa medida de desempenho, ajudando a identificar rapidamente instruções caras. O Database Management usa os dados armazenados na tabela events_statements_summary_by_digest no Esquema de Desempenho MySQL. As instruções SQL listadas na seção 100 Principais por <indicador> são instruções normalizadas, e os dados mostrados são agregados a partir do momento em que cada instrução foi vista pela primeira vez. Com base nos dados, as instruções SQL mais lentas, mais frequentes ou com uso intensivo de recursos são exibidas, e você pode usar essas informações para identificar as instruções que causam problemas de desempenho.

    Observe que alguns indicadores na lista drop-down 100 Principais por <indicador> são exibidos como colunas padrão. Se você optar por classificar as instruções SQL usando um indicador que não seja uma coluna padrão, por exemplo, Visualizado pela primeira vez, ele será adicionado como a última coluna. Para personalizar ainda mais as informações exibidas nesta seção, marque ou desmarque as opções na lista drop-down Colunas. Para um sistema de banco de dados ativado para HeatWave, você também pode filtrar instruções SQL selecionando uma opção na lista drop-down HeatWave status de offload.

    Veja a lista de indicadores ou colunas na seção 100 Principais por <indicador>, em ordem alfabética.

    Indicador/Coluna Descrição

    Tempo médio de CPU

    O tempo médio de CPU, calculado dividindo o tempo total de CPU pelo número total de execuções de uma instrução SQL específica (identificada por sua compilação).

    Observação: Para sistemas de banco de dados HeatWave, esse indicador só será listado se a opção Monitoramento completo tiver sido selecionada ao ativar o Database Management. Para obter informações, consulte Ativar o Serviço Database Management para HeatWave.

    Além disso, para usar esse indicador para sistemas de banco de dados HeatWave, execute a seguinte consulta para ativar instrumentos de CPU:

    UPDATE performance_schema.setup_consumers
    SET ENABLED = 'YES'
    WHERE NAME = 'events_statements_cpu';

    Para sistemas de BD MySQL Externos, o tipo de consumidor events_statements_cpu deve ser definido como YES para usar esse indicador. Para obter informações, consulte Executar Tarefas de Pré-requisitos Relacionadas ao Sistema de Banco de Dados MySQL Externo.

    Latência média do demonstrativo (indicador padrão)

    O tempo médio que a instrução SQL leva para ser executada, calculado em todas as execuções da instrução.

    Database

    O nome do banco de dados no qual a instrução SQL foi executada ou "-" se nenhum banco de dados for especificado. Esta é uma coluna padrão e não está incluída na lista de indicadores.

    Status de execução

    O estado atual ou o resultado da execução da instrução SQL.

    Se ocorrer um erro durante a execução de uma instrução SQL, a coluna Status exibirá um ícone de erro (Erro). Clique nesse ícone para exibir o código de erro, o número de ocorrências e a mensagem de erro no painel Detalhes do erro de digitação. Observe que os detalhes do erro podem não ser exibidos se determinadas variáveis ou tabelas não estiverem configuradas ou ativadas na configuração do MySQL.

    Primeiro visto

    O horário em que a instrução SQL foi vista pela primeira vez.

    HeatWave submetido a off-load

    O número de execuções de instrução SQL que foram descarregadas no acelerador de consultas na memória HeatWave.

    Observação: Além dos dados da tabela events_statements_summary_by_digest, o status de descarregamento HeatWave é listado na lista drop-down do indicador para sistemas de BD ativados para HeatWave.

    Último visto

    O horário em que a instrução SQL foi vista mais recentemente.

    Nenhum índice bom usado

    O número total de vezes que MySQL não conseguiu encontrar um índice efetivo para executar a instrução SQL, levando a planos de execução menos eficientes e desempenho mais lento.

    Nenhum índice usado

    O número total de vezes que nenhum índice foi usado para executar a instrução SQL.

    Consultar

    a instrução SQL normalizada. Esta é uma coluna padrão e não está incluída na lista de indicadores. Clique na instrução para exibir os detalhes de SQL.

    Tabelas temporárias

    O número total de tabelas temporárias internas, criadas na memória ou no disco pela instrução SQL.

    Tempo total da CPU

    O tempo total de CPU consumido por todas as execuções de uma instrução SQL específica (identificada por sua compilação).

    Observação: Para sistemas de banco de dados HeatWave, esse indicador só será listado se a opção Monitoramento completo tiver sido selecionada ao ativar o Database Management. Para obter informações, consulte Ativar o Serviço Database Management para HeatWave.

    Além disso, para usar esse indicador para sistemas de banco de dados HeatWave, execute a seguinte consulta para ativar instrumentos de CPU:

    UPDATE performance_schema.setup_consumers
    SET ENABLED = 'YES'
    WHERE NAME = 'events_statements_cpu';

    Para sistemas de BD MySQL Externos, o tipo de consumidor events_statements_cpu deve ser definido como YES para usar esse indicador. Para obter informações, consulte Executar Tarefas de Pré-requisitos Relacionadas ao Sistema de Banco de Dados MySQL Externo.

    Contagem total de execuções

    O número total de vezes que a instrução SQL foi executada.

    Total de linhas afetadas

    O número total de linhas modificadas pela instrução SQL.

    Total de linhas examinadas

    O número total de linhas examinadas pela instrução SQL.

    Total de linhas enviadas

    O número total de linhas retornadas pela instrução SQL.

    Latência total de instrução

    O tempo total gasto para todas as execuções da instrução SQL.

    Ao revisar as instruções SQL listadas pelo indicador de desempenho selecionado, clique no link na coluna Consulta para examinar uma única instrução SQL de interesse no painel Detalhes da SQL. O painel Detalhes da SQL tem duas guias:

    • Analisador de consultas: Nesta guia, você pode:
      • Use o ID de compilação de instruções para gravar uma consulta e obter informações adicionais do sistema de banco de dados.
      • Exiba a instrução SQL normalizada.
      • Monitore informações detalhadas sobre o tempo de execução, o número de linhas e as tabelas temporárias. Por exemplo, você pode monitorar o número de linhas examinadas ou retornadas e o número de tabelas temporárias que foram criadas.

      Para obter informações sobre resumos de instruções, consulte Compilações e Amostragem de Instruções do Esquema de Desempenho.

    • Plano de explicação: Nesta guia, você pode:
      • Exibir os detalhes de um exemplo de instrução SQL, como quando ela foi executada, o tempo utilizado e o SQL real com valores literais que foram passados no momento da execução.
      • Monitore o plano de execução gerado para a instrução SQL, que fornece insights valiosos sobre como a instrução SQL é executada. Visualizando a estratégia de execução, você pode identificar gargalos de desempenho, como varreduras completas de tabelas ou junções ineficientes, e otimizar as instruções.

        Por padrão, é exibida uma representação gráfica da saída EXPLAIN, facilitando a compreensão do plano de execução, a identificação de ineficiências e a tomada de decisões informadas para otimização. O plano de explicação gráfica exibe o plano de execução como uma árvore, em que cada nó representa uma operação específica no processo de execução, como varreduras de tabela, junções e classificações. Os nós são codificados por cores para representar diferentes tipos de operações, e você pode clicar em nós individuais para obter mais informações sobre cada etapa. Ao exibir o plano gráfico de explicação, clique em Girar para girar o diagrama no sentido anti-horário; você também pode usar a roda do mouse, o touchpad ou as teclas +/- para ampliar e reduzir o diagrama do plano de explicação.

        Na lista drop-down Opção de view, selecione Plano de explicação tabular para exibir o plano de execução ou a sequência de operações usadas para executar uma instrução em um formato tabular. Esta tabela fornece a lista de operações e os seguintes detalhes:

        • Nome da tabela: O nome da tabela que está sendo acessada durante a execução.
        • Tipo: O tipo de método de acesso usado para acessar a tabela durante a execução.
        • Chave: O índice usado pela instrução, se houver.
        • Ref: Se a instrução envolver uma junção, as colunas ou constantes que estão sendo comparadas à chave.
        • Linhas: O número estimado ou real de linhas que a operação deve processar ou retornar.
        • Filtrado: A porcentagem de linhas que devem ser filtradas com base na cláusula WHERE.
        • Custo: O custo estimado da execução da operação.

        Para personalizar as informações exibidas na exibição Plano de explicação tabular, marque ou desmarque colunas na lista drop-down Colunas.