Todos os produtos
Search
Central de documentação

PolarDB:Uso

Última atualização: Jun 28, 2026

O SQL Trace registra planos de execução e estatísticas de tempo de execução das instruções SQL no cluster PolarDB for MySQL. Use esse recurso para detectar regressões de desempenho causadas por alterações nos planos de execução e identificar as principais instruções SQL que mais consomem recursos.

Pré-requisitos

Antes de começar, verifique se o cluster executa uma das seguintes versões:

  • PolarDB for MySQL 8.0.1, versão de revisão 8.0.1.1.30 ou posterior

  • PolarDB for MySQL 8.0.2, versão de revisão 8.0.2.2.12 ou posterior

Para verificar a versão do cluster, consulte Consultar a versão do mecanismo.

Limitações

O SQL Trace não rastreia instruções relacionadas a contas: CREATE USER, DROP USER e GRANT.

Parâmetros

Parâmetro

Descrição

loose_sql_trace_type

Modo de rastreamento. Valores válidos: OFF (padrão), DEMAND, ALL, SLOW_QUERY. O modo SLOW_QUERY exige a versão de revisão 8.0.1.1.34 ou posterior no PolarDB for MySQL 8.0.1.

loose_sql_sharing_size

Memória máxima alocada para o SQL Sharing, componente subjacente do SQL Trace. Valores válidos: 8388608–1073741824 bytes. Padrão: 134217728 bytes.

loose_sql_trace_plan_expire_time

Tempo de retenção de um plano de execução rastreado sem reutilização. Se nenhuma instrução subsequente executar o mesmo plano dentro dessa janela, o sistema removerá o plano. Valores válidos: 0–18446744073709551615 segundos. Padrão: 604800 segundos (7 dias).

Escolha um modo de rastreamento

Selecione o modo conforme o que deseja monitorar:

Modo

O que é rastreado

Quando usar

OFF

Nenhum dado (padrão)

Quando o SQL Trace estiver inativo

DEMAND

Instruções SQL específicas adicionadas manualmente

Para focar em consultas lentas ou críticas já conhecidas

ALL

Todas as instruções SQL

Na investigação de problemas de desempenho desconhecidos em todo o cluster

SLOW_QUERY

Consultas que excedem o limiar de consulta lenta

Recomendado quando o foco for apenas em consultas lentas

Com base em testes do Sysbench ( oltp_read_only e oltp_read_write ) com 2.000 tabelas de 10.000 linhas cada, em clusters de 4 núcleos/8 GB e 8 núcleos/32 GB, o modo ALL reduz o desempenho do banco de dados em menos de 3%. O SQL Trace usa designs livres de bloqueio para minimizar o impacto sob alta concorrência.

Rastreie instruções SQL

Rastrear todas as instruções SQL

Defina loose_sql_trace_type como ALL.

Rastrear instruções SQL específicas

  1. Defina loose_sql_trace_type como DEMAND.

  2. Adicione as instruções a rastrear usando dbms_sql.add_trace.

Visualize estatísticas de execução

Todas as instruções rastreadas ficam armazenadas na tabela information_schema.sql_sharing. Consulte essa tabela para visualizar o plano de execução e as estatísticas de qualquer instrução rastreada.

Obter o plano de execução de uma instrução específica

SELECT * FROM information_schema.sql_sharing WHERE sql_id = polar_sql_id('select * from t');

Encontrar as principais instruções SQL

Use estas consultas para identificar as instruções que exigem maior atenção. Comece pelo tempo total de execução para encontrar o maior custo geral e, em seguida, use as outras consultas para restringir as causas raiz.

Top 10 por tempo total de execução — identifica instruções com o maior custo cumulativo em todas as execuções:

SELECT * FROM information_schema.sql_sharing
WHERE TYPE = 'sql'
ORDER BY SUM_EXEC_TIME DESC
LIMIT 10;

Top 10 por tempo médio de execução — aponta instruções lentas por chamada individual, mesmo que executadas com pouca frequência:

SELECT * FROM information_schema.sql_sharing
WHERE TYPE = 'sql'
ORDER BY SUM_EXEC_TIME / EXECUTIONS DESC
LIMIT 10;

Top 10 por total de linhas verificadas — destaca instruções que causam mais E/S, o que frequentemente indica índices ausentes ou planos de consulta ineficientes:

SELECT * FROM information_schema.sql_sharing
WHERE TYPE = 'sql'
ORDER BY SUM_ROWS_EXAMINED DESC
LIMIT 10;

Gerencie instruções rastreadas e estatísticas

Remover instruções rastreadas

Para interromper o rastreamento de instruções específicas adicionadas no modo DEMAND:

Redefinir estatísticas

Para redefinir todas as estatísticas em information_schema.sql_sharing, use dbms_sql.reset_trace_stats.

Limpar e recarregar

Para limpar todos os dados de information_schema.sql_sharing, use dbms_sql.flush_trace.

Para recarregar modelos SQL de mysql.sql_sharing e retomar a coleta de estatísticas das instruções adicionadas anteriormente, use dbms_sql.reload_trace.