Todos os produtos
Search
Central de documentação

Database Autonomy Service:SQL Explorer

Última atualização: Jul 20, 2026

Utilize o ️SQL Explorer no SQL Explorer and Audit para diagnosticar a integridade do SQL e solucionar problemas de desempenho.

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 Ative SQL Explorer and Audit.

Como funciona

Quando ativado, o SQL Explorer registra todas as operações DQL, DML e DDL diretamente do kernel do banco de dados, com impacto insignificante na CPU.

Observações de uso

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

  • Os dados de detalhes de SQL no SQL Explorer são retidos pelo mesmo período configurado para o DAS Enterprise Edition.

  • Desativar o SQL Explorer and Audit não afeta seus services, mas apaga todos os dados armazenados desse recurso. Antes de desativar, exporte os dados necessários para uma máquina local. Para mais informações, consulte Disable SQL Explorer and Audit.

  • Quando uma instrução SQL é executada em uma instância ApsaraDB RDS for MySQL anexada ao PolarDB-X 1.0, vários logs de 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, o que pode levar à perda de dados no SQL Explorer.

  • Sob carga muito alta, um pequeno número de registros pode ser perdido, causando imprecisão nas estatísticas de dados incrementais no SQL Explorer.

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

    Nota
    • Para as 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.

    • Para a 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 com PgBouncer ativado, as instruções SQL executadas por meio do PgBouncer não são registradas pelo SQL Explorer.

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 no 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 na aba SQL Explorer.

  5. Selecione um recurso conforme sua necessidade:

    Nota

    Ao selecionar um intervalo de tempo, a hora final deve ser posterior à hora inicial, e o intervalo não pode exceder um dia. Após ativar o DAS Enterprise Edition para a instância, você pode consultar dados de qualquer dia dentro do período de retenção 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 no 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 de SQL. Para obter mais logs de SQL ou cobrir um intervalo de tempo maior, utilize 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: Realiza uma análise de carga de trabalho em uma instância de banco de dados para um intervalo de tempo selecionado e um intervalo de linha de base. Executa também 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 TOP traffic. Para mais informações, consulte SQL Review.

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

    Importante
    • Para o SQL Explorer and Audit que utiliza 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 os 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 no modelo pagamento conforme o uso. Para mais informações, consulte billing details.

Resultados

  • Execution Duration Distribution: Mostra como as durações de execução de SQL estão distribuídas no intervalo de tempo selecionado. As durações são divididas em sete intervalos, calculados uma vez por minuto:

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

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

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

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

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

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

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

    Nota

    Cores mais próximas do azul indicam um desempenho de SQL mais saudável. Cores mais próximas do laranja e vermelho indicam desempenho inferior.

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

  • Full Request Statistics: Apresenta o texto do 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 é a razão entre a duração total de execução de um tipo específico de SQL e o total de todos os tipos de SQL. Uma porcentagem maior indica maior consumo de 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: Utilize uma SQL Sample para identificar qual aplicação cliente iniciou a instrução SQL.

    Nota

    As amostras de SQL utilizam 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. Sua duração é o tempo entre a última interação e o momento em que a desconexão ocorreu, representando o tempo ocioso da conexão. Um status 1158 na coluna Status indica uma desconexão de rede, que pode ser causada por:

  • Tempo limite da conexão do cliente.

  • Desconexão inesperada do servidor.

  • Redefinição da conexão pelo servidor porque a duração de interactive_timeout ou wait_timeout foi excedida.

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

R: Isso pode ocorrer quando você usa um stored procedure. Para reproduzir esse comportamento, siga 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 (Deprecated, redirected to "Step 1") Crie a database and an account.

  2. Use a conta de teste para conectar-se à instância de banco de dados pela linha de comando. Para mais informações, consulte (Deprecated, redirected to "Step 2") Connect to an ApsaraDB RDS for MySQL instance by using a client or the CLI.

  3. Mude para o banco de dados de teste e crie o seguinte stored procedure.

    -- 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 (Deprecated, redirected to "Step 2") Connect to an ApsaraDB RDS for MySQL instance by using a client or the CLI.

  5. Chame o stored procedure.

    -- 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 do banco de dados na instrução SQL é especificado pelo usuário. Eles podem diferir em cenários como consultas entre bancos de dados ou SQL dinâmico, onde 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 visualizo 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. Elas aparecem como - na coluna de instrução SQL, o que é um comportamento esperado. Revise o código do lado do cliente para otimizar a lógica de envio de instruções vazias.

APIs relacionadas

API

Descrição

GetErrorRequestSample

Consulta de forma assíncrona 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 de forma assíncrona 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 de forma assíncrona os IDs de 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 de forma assíncrona 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 dos resultados do SQL Explorer de uma instância de banco de dados, categorizadas por origem de acesso.

GetFullRequestStatResultByInstanceId

Reúne estatísticas de forma assíncrona sobre dados de requisição completa dos resultados do SQL Explorer de uma instância de banco de dados, categorizadas por SQL ID.

GetFullRequestSampleByInstanceId

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

GetDasSQLLogHotData

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

Melhores práticas

Troubleshoot slow SQL queries