O Database Autonomy Service (DAS) analisa instruções SQL cujo tempo de execução ultrapassa um limiar definido, exibe tendências de execução e estatísticas, e fornece sugestões de otimização. Use este recurso para identificar e resolver consultas lentas que afetam o desempenho e a estabilidade do banco de dados.
Limites
|
Item |
Limite |
|
Tamanho da entrada de log |
Máximo de 16 KB por entrada. O conteúdo que exceder esse tamanho será truncado. |
|
Suporte à Basic Edition |
Instâncias ApsaraDB RDS for MySQL Basic Edition suportam visualização e exportação de logs de consultas lentas, mas não oferecem suporte a diagnósticos SQL nem a otimização SQL. |
Pré-requisitos
Antes de começar, certifique-se de que você tem:
Uma instância ApsaraDB RDS for MySQL
(Opcional) A permissão
AliyunHDMFullAccessconcedida ao seu usuário RAM
Visualizar e analisar logs de consultas lentas
Acesse a página Instances. Na barra de navegação superior, selecione a região onde sua instância RDS está localizada. Localize a instância e clique em seu ID.
No painel de navegação à esquerda, escolha Autonomy Services > Slow Query Logs.
Na aba Slow Log Analysis, especifique um intervalo de tempo. > Nota: O horário de término deve ser posterior ao horário de início. O intervalo máximo é de 7 dias. Os dados do log de consultas lentas ficam disponíveis pelo último mês.
A página exibe as seguintes seções:
Slow Query Log Trends
Gráfico de série temporal que mostra a distribuição de consultas lentas ao longo do período selecionado. Clique em um ponto do gráfico para detalhar as seções Slow Query Log Statistics e Slow Query Log Details correspondentes.
Se uma instrução SQL lenta for longa demais para ser exibida por completo, passe o cursor sobre ela para ver a instrução na íntegra.
Event Distribution
Exibe a distribuição dos eventos de consultas lentas.
Slow Query Log Statistics
Estatísticas agregadas agrupadas por modelo de SQL. As condições de filtro disponíveis variam conforme o mecanismo de banco de dados.
|
Ação |
Descrição |
|
Clique em SQL ID |
Visualize correlações e detalhes do modelo SQL, incluindo distribuição de usuários, distribuição de clientes e tendências de métricas. |
|
Optimize |
Execute diagnósticos SQL. O DAS analisa a instrução com base em sua complexidade, no volume de dados da tabela relacionada e na carga de trabalho do banco de dados. O diagnóstico pode levar mais de 20 segundos. Ao concluir, o DAS fornece o resultado do diagnóstico, sugestões de otimização e as melhorias de desempenho esperadas. |
|
Throttling |
Crie uma regra de throttling para a instrução SQL. Para mais informações, consulte SQL throttling. |
|
IMCI (somente PolarDB for MySQL) |
Consulte a documentação do In-Memory Column Index (IMCI) para melhorar o desempenho de consultas complexas em grandes conjuntos de dados. Este botão aparece quando a instância PolarDB for MySQL não possui nó IMCI, o Maximum Execution Duration ultrapassa 20 segundos e o Maximum Scanned Rows ultrapassa 200.000. |
Slow Query Log Details
Registros individuais de consultas lentas. Clique em Optimize ou Throttling na coluna Actions para executar diagnósticos SQL ou criar uma regra de throttling para uma instrução específica.
Clique em
para exportar os dados do log lento localmente.
Clique em
para preencher os parâmetros selecionados no console OpenAPI para depuração de API.
Principais métricas
|
Métrica |
Descrição |
|
Maximum Scanned Rows |
O número máximo de linhas verificadas durante consultas lentas no intervalo de tempo selecionado. |
|
SQL Template |
Padrão de consulta normalizado gerado para instruções SQL do mesmo tipo. |
|
Slow SQL Sample |
Amostra representativa coletada de um modelo SQL em intervalos regulares. As amostras não cobrem todos os logs de consultas lentas. Para a lista completa, consulte View details about the slow query logs. |
|
Slow Log Details |
Registros detalhados de consultas cujo tempo de execução ultrapassa o valor do parâmetro |
Registrar consultas que não utilizam índices
Ative o parâmetro log_queries_not_using_indexes para registrar consultas SQL que não utilizam índices, mesmo quando o tempo de execução está abaixo do limiar long_query_time. Para mais informações, consulte a documentação do slow query log do MySQL.
Perguntas frequentes
Por que o horário de conclusão de execução nos logs de consultas lentas difere do horário real?
Isso geralmente ocorre quando uma instrução SQL altera o fuso horário no nível da sessão. Os logs de consultas lentas registram o horário de conclusão da execução com base no fuso horário em três níveis: sessão, banco de dados e sistema. Se um fuso horário no nível do banco de dados estiver definido, ele será utilizado; caso contrário, aplica-se o fuso horário do sistema. Quando uma instrução altera o fuso horário da sessão, o horário registrado pode não corresponder ao horário real de conclusão da execução.
Referências
Use the automatic SQL optimization feature -- O DAS pode otimizar automaticamente consultas SQL lentas quando detectadas.
Use the automatic SQL throttling feature -- O DAS pode aplicar throttling automático em consultas SQL lentas para proteger a estabilidade do banco de dados.