Todos os produtos
Search
Central de documentação

Database Autonomy Service:SQL Explorer

Última atualização: Jun 27, 2026

Use o ️SQL Explorer para diagnosticar a integridade do SQL e solucionar problemas de desempenho. Este tópico descreve como usar o ️SQL Explorer no recurso SQL Explorer and Audit.

Pré-requisitos

  • A instância de banco de dados foi adicionada ao DAS e seu status de conexão é Normal Connection.

  • O SQL Explorer and Audit está ativado para a instância. Para mais informações, consulte Ativar o SQL Explorer and Audit.

Como funciona

Quando ativado, o SQL Explorer registra todas as operações DQL, DML e DDL. O SQL Explorer captura essas informações diretamente do kernel do banco de dados, com impacto insignificante no uso da CPU.

Bancos de dados e regiões compatíveis

Para obter informações sobre os bancos de dados e regiões compatíveis com cada versão do DAS Enterprise Edition, consulte Edições do produto.

Observações de uso

  • Os dados analíticos e estatísticos no SQL Explorer, exceto os detalhes do SQL, são retidos por 30 dias.

  • O período de retenção dos dados de detalhes do SQL no SQL Explorer corresponde ao período configurado para o DAS Enterprise Edition.

  • Desativar o SQL Explorer and Audit não afeta seus serviços, mas apaga todos os dados armazenados desse recurso. Antes de desativá-lo, exporte e salve os dados necessários em uma máquina local. Para mais informações, consulte Desativar o SQL Explorer and Audit.

  • Ao executar uma instrução SQL em uma instância ApsaraDB RDS for MySQL anexada ao PolarDB-X 1.0, vários logs SQL são gerados na instância ApsaraDB RDS for MySQL devido ao sharding.

  • A migração de dados pode causar desconexões transitórias e levar à perda de dados no SQL Explorer durante o processo.

  • Se uma instância de banco de dados estiver sob carga muito alta, alguns registros poderão ser perdidos. Consequentemente, as estatísticas de dados incrementais do SQL Explorer podem ficar imprecisas.

  • Um parâmetro determina o comprimento máximo de uma instrução SQL registrada. O SQL Explorer não registra nenhuma parte da instrução que exceda esse limite. Como um prefixo é adicionado durante a coleta de dados, o comprimento real registrado é ligeiramente menor que o valor do parâmetro configurado.

    Nota
    • Nas versões 5.6 e 5.7 do ApsaraDB RDS for MySQL e PolarDB for MySQL, o comprimento registrado é controlado pelo parâmetro loose_rds_audit_max_sql_size.

    • Na versão 8.0 do ApsaraDB RDS for MySQL e PolarDB for MySQL, o comprimento registrado é controlado pelo parâmetro loose_rds_audit_log_event_buffer_size.

  • Em instâncias ApsaraDB RDS for PostgreSQL, se um pool de conexões PgBouncer estiver ativado, o SQL Explorer não registrará as instruções SQL executadas por meio dele.

Procedimento

  1. Faça login no console do DAS.

  2. No painel de navegação à esquerda, clique em Intelligent O&M Center > Instance Monitoring.

  3. Localize a instância desejada e clique em ID da instância para abrir a página de detalhes.

  4. No painel de navegação à esquerda, clique em Request Analysis > SQL Explorer and Audit e, em seguida, clique em aba SQL Explorer.

  5. Selecione um recurso conforme sua necessidade:

    Nota

    Ao selecionar um intervalo de tempo, a hora final deve ser posterior à inicial, e o intervalo não pode exceder um dia. Após ativar o DAS Enterprise Edition para a instância, você poderá consultar dados de qualquer dia dentro da duração de armazenamento do SQL Explorer.

    • Display by Time Range: Selecione um intervalo de tempo para visualizar os resultados do SQL Explorer. É possível ver a Execution Duration Distribution, a Execution Duration e as Executions de todas as instruções SQL dentro do intervalo selecionado. Também é possível visualizar os detalhes de todas as instruções SQL na seção Full Request Statistics e exportar os resultados.

      Nota

      É possível exportar até 1.000 logs SQL. Para obter mais logs ou cobrir um intervalo de tempo maior, use o recurso Audit.

    • Display by Comparison: Selecione os pontos de tempo para comparar os resultados do SQL Explorer. Visualize uma comparação da Execution Duration Distribution, da Execution Duration e das Executions para todas as instruções SQL. Os resultados detalhados da comparação estão disponíveis na seção Requests by Comparison.

    • Source Statistics: Escolha um intervalo de tempo para ver estatísticas sobre as origens do SQL. Consulte as informações de source de todas as instruções SQL no período selecionado.

    • SQL Review: Analisa a carga de trabalho de uma instância de banco de dados para um intervalo de tempo selecionado e uma linha de base temporal. Esse recurso também executa uma análise profunda das instruções SQL em execução na instância e fornece sugestões de otimização de índice, sugestões de reescrita de SQL, TOP SQL, novo SQL, SQL com falha, análise de recursos de SQL, SQL com alterações de execução, SQL com degradação de desempenho e tabelas de tráfego TOP. Para mais informações, consulte SQL Review.

    • Related SQL Identification: Selecione as métricas desejadas e clique em Analysis. Após 1 a 5 minutos, o sistema identifica e exibe as instruções SQL com tendências mais semelhantes às métricas selecionadas dentro do intervalo de tempo especificado.

    Importante
    • Para o SQL Explorer and Audit com armazenamento quente e frio, o sistema move dados com mais de sete dias para o armazenamento frio. Ao analisar dados de detalhes de SQL com mais de sete dias, o sistema cria uma tarefa para recalcular e analisar esses dados. Acompanhe o progresso e o histórico da tarefa na página Task list.

    • Consultas em dados do SQL Explorer and Audit com mais de sete dias são cobradas com base no pagamento conforme o uso. Para mais informações, consulte detalhes de faturamento.

Resultados

  • Execution Duration Distribution: Mostra a distribuição da duração de execução de todas as instruções SQL dentro do intervalo de tempo selecionado. A duração da execução é dividida em sete intervalos, calculados uma vez por minuto:

    • [0,1]ms indica a porcentagem de execuções SQL com duração de 0 ms a 1 ms (inclusivo).

    • (1,2]ms indica a porcentagem de execuções SQL com duração superior a 1 ms e até 2 ms.

    • (2,3]ms indica a porcentagem de execuções SQL com duração superior a 2 ms e até 3 ms.

    • (3,10]ms indica a porcentagem de execuções SQL com duração superior a 3 ms e até 10 ms.

    • (10,100]ms indica a porcentagem de execuções SQL com duração superior a 10 ms e até 100 ms.

    • (0.1,1]s indica a porcentagem de execuções SQL com duração superior a 0,1 s e até 1 s.

    • >1s indica a porcentagem de execuções SQL com duração superior a 1 s.

    Nota

    Quanto mais próxima do azul estiver a Execution Duration Distribution de uma instância, melhor será seu desempenho SQL. Quanto mais próxima do laranja e vermelho, pior será o desempenho.

  • Execution Duration (SQL RT): Exibe a duração da execução das instruções SQL dentro do intervalo de tempo selecionado.

  • Full Request Statistics: Apresenta o texto SQL, a porcentagem de duração, a duração média de execução e a tendência de execução para cada tipo de instrução SQL no intervalo de tempo selecionado.

    Nota

    A porcentagem de duração representa a duração total da execução de um tipo específico de SQL em relação à duração total de todos os tipos. Tipos de SQL com maior porcentagem de duração consomem mais recursos na instância MySQL.

  • SQL ID: Clique em um SQL ID para visualizar a tendência de desempenho e as amostras de SQL dessa instrução.

  • SQL Sample: Use uma SQL Sample para identificar qual aplicativo cliente iniciou a instrução SQL.

    Nota

    As amostras de SQL usam codificação UTF-8.

Perguntas frequentes

P: O que significa a instrução **️SQL Explorerlogout! na seção Full Request Statistics do ️SQL Explorer**?

R: logout! indica uma desconexão. A duração de um evento logout! corresponde à diferença de tempo entre a última interação e o momento em que o logout! ocorreu. Essa duração pode ser interpretada como o tempo ocioso da conexão. Um status 1158 na coluna Status indica uma desconexão de rede, que pode ter as seguintes causas:

  • Tempo limite da conexão do cliente esgotado.

  • Desconexão inesperada do servidor.

  • Redefinição da conexão pelo servidor devido à ultrapassagem do tempo de interactive_timeout ou wait_timeout.

P: Na seção **️SQL ExplorerSource Statistics do ️SQL Explorer, por que um sinal de porcentagem (%) aparece como uma Access Source**?

R: Isso pode ocorrer ao usar um procedimento armazenado. É possível reproduzir esse comportamento seguindo o exemplo abaixo:

Nota

Este exemplo utiliza uma instância ApsaraDB RDS for MySQL, uma conta de teste chamada test_user e um banco de dados de teste chamado testdb.

  1. No console do ApsaraDB RDS, crie uma conta padrão e autorize-a a acessar um banco de dados. Para mais informações, consulte (Descontinuado, redirecionado para "Etapa 1") Criar um banco de dados e uma conta.

  2. Use a conta de teste para conectar-se à instância de banco de dados pela linha de comando. Para mais informações, consulte (Descontinuado, redirecionado para "Etapa 2") Conectar-se a uma instância ApsaraDB RDS for MySQL usando um cliente ou a CLI.

  3. Mude para o banco de dados de teste e crie o seguinte procedimento armazenado.

    -- Switch to the test database
    USE testdb;
    
    -- Create a stored procedure
    DELIMITER $$
    DROP PROCEDURE IF EXISTS `das` $$
    CREATE DEFINER=`test_user`@`%` PROCEDURE `das`()
    BEGIN
    SELECT * FROM information_schema.processlist WHERE Id = CONNECTION_ID();
    END $$
    DELIMITER;
  4. Use uma conta privilegiada para conectar-se à instância de banco de dados. Para mais informações, consulte (Descontinuado, redirecionado para "Etapa 2") Conectar-se a uma instância ApsaraDB RDS for MySQL usando um cliente ou a CLI.

  5. Chame o procedimento armazenado.

    -- Switch to the test database
    USE testdb;
    
    -- Call the stored procedure
    CALL das();
    
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+
    | ID     | USER      | HOST   | DB     | COMMAND | TIME | STATE     | INFO                                                                    |
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+
    | 487818 | test_user | %:2065 | testdb | Query   |    0 | executing | SELECT * FROM information_schema.processlist WHERE Id = CONNECTION_ID() |
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+

P: Por que o nome do banco de dados na seção Logs é diferente daquele na instrução SQL?

R: O nome do banco de dados exibido na seção Logs é recuperado da sessão, enquanto o nome na instrução SQL é especificado pelo usuário. Eles podem diferir em cenários como consultas entre bancos de dados ou SQL dinâmico, nos quais a entrada do usuário ou o design da consulta determina o nome do banco de dados na instrução.

P: Ativar o SQL Explorer and Audit afeta o desempenho do banco de dados? Qual é a magnitude do impacto?

R: Sim, mas o impacto é mínimo e quase imperceptível.

O impacto em recursos específicos é o seguinte:

  • CPU e memória: O consumo é extremamente baixo e pode ser ignorado.

  • Espaço de armazenamento: O recurso armazena principalmente informações de auditoria. No entanto, o DAS Enterprise Edition armazena esses dados no lado do DAS, portanto, não consome o armazenamento da sua instância de banco de dados.

  • Rede: Não há impacto no desempenho da rede.

  • Desempenho do disco: Sem impacto. Os dados de auditoria são gravados no armazenamento do DAS, não nos discos da instância de banco de dados.

P: Por que uma instrução SQL capturada está incompleta? Como posso visualizar a instrução completa?

R: Isso ocorre se a instrução SQL executada for muito longa. No SQL Explorer, pesquise pelo ID do thread ou ID da transação correspondente para visualizar a instrução completa.

P: Nos logs de auditoria de uma instância ApsaraDB RDS for PostgreSQL, por que algumas instruções SQL são exibidas como -?

R: Quando o parâmetro log_statement de uma instância ApsaraDB RDS for PostgreSQL está definido como all, instruções vazias enviadas pelo cliente também são registradas no log de auditoria. Essas instruções vazias aparecem como - na coluna de instrução SQL do log de auditoria, o que é um comportamento esperado. Recomendamos revisar o código-fonte do lado do cliente para otimizar a lógica de envio de instruções vazias.

APIs relacionadas

API

Descrição

GetErrorRequestSample

Consulta assincronamente até 20 amostras de consultas SQL com falha nos resultados do SQL Explorer de uma instância de banco de dados dentro de um intervalo de tempo especificado.

GetAsyncErrorRequestStatResult

Recupera assincronamente o número de execuções com falha para uma instrução SQL especificada nos resultados do SQL Explorer de uma instância de banco de dados.

GetAsyncErrorRequestListByCode

Consulta assincronamente os IDs SQL das instruções que geraram um código de erro MySQL especificado nos resultados do SQL Explorer de uma instância de banco de dados.

GetAsyncErrorRequestStatByCode

Consulta assincronamente os códigos de erro MySQL e o número de consultas SQL correspondentes a cada código de erro nos resultados do SQL Explorer de uma instância de banco de dados.

GetFullRequestOriginStatByInstanceId

Reúne estatísticas sobre dados de requisição completa nos resultados do SQL Explorer de uma instância de banco de dados, categorizados por origem de acesso.

GetFullRequestStatResultByInstanceId

Reúne assincronamente estatísticas sobre dados de requisição completa nos resultados do SQL Explorer de uma instância de banco de dados, categorizados por ID SQL.

GetFullRequestSampleByInstanceId

Consulta até 20 amostras de SQL por ID SQL nos resultados do SQL Explorer de uma instância de banco de dados.

GetDasSQLLogHotData

Consulta os detalhes dos dados no armazenamento quente dos últimos sete dias para o SQL Explorer and Audit de uma instância de banco de dados.

Melhores práticas

Solucionar problemas de consultas SQL lentas