Todos os produtos
Search
Central de documentação

PolarDB:Especifique uma política de coleta de estatísticas

Última atualização: Jun 28, 2026

O PolarDB-X coleta estatísticas em segundo plano para que o otimizador baseado em custo (CBO) gere planos de execução precisos. Estatísticas desatualizadas ou ausentes resultam em planos subotimizados e consultas mais lentas.

Este tópico descreve as três políticas de coleta de estatísticas, explica os acionamentos de cada uma e mostra como controlar ou interromper a coleta.

Políticas de coleta de estatísticas

O PolarDB-X executa três políticas de coleta, cada uma com uma condição de acionamento diferente.

Política

Acionamento

Padrão SQL

Parâmetro

Auto analyze

Semanalmente, entre 02:00 e 05:00

SQL com cláusula WHERE (RAND() < 3.9623395E-4); SQL com endereço IP nulo no comentário; SQL que chama a função HYPERLOGLOG

ENABLE_BACKGROUND_STATISTIC_COLLECTION

Consultas no INFORMATION_SCHEMA

Diariamente, entre 02:00 e 05:00

SELECT table_schema, table_name, table_rows FROM information_schema.tables WHERE table_schema IN (...) AND table_name IN (...)

N/A

Coleta por feedback em tempo real

Quando operações INSERT ou DELETE alteram mais de 20% das linhas armazenadas na tabela

Mesmos padrões SQL do auto analyze

N/A

Impacto nas IOPS

Aumento de IOPS durante a janela de coleta

Em tabelas grandes, as IOPS nos nós de dados aumentam durante a janela de coleta das 02:00 às 05:00. Esse comportamento é esperado.

Aumento de IOPS fora da janela de coleta

Se as IOPS aumentarem fora da janela programada, um dos seguintes cenários estará ocorrendo:

  • Tarefa de coleta excedendo o tempo limite: A tabela é grande o suficiente para que o processamento de uma única tabela lógica ultrapasse a janela programada. A tarefa iniciou às 02:00, mas continua em execução após as 05:00.

  • Coleta por feedback em tempo real acionada: Uma operação grande de INSERT ou DELETE ultrapassou o limiar de 20% e a tarefa de coleta resultante está em execução por um período prolongado.

Desativar a coleta de estatísticas em segundo plano

Para impedir a execução da coleta durante a madrugada, defina ENABLE_BACKGROUND_STATISTIC_COLLECTION como False na página Parameter Settings do console do PolarDB-X.

Essa configuração desativa tanto o auto analyze quanto a coleta por feedback em tempo real. Após a desativação, execute manualmente a instrução a seguir em horários de baixa demanda para manter as estatísticas atualizadas:

ANALYZE TABLE <table_name>;

Execute ANALYZE TABLE regularmente se suas tabelas forem atualizadas com frequência. Para tabelas com atualizações pouco frequentes ou previsíveis, programe a execução com menor periodicidade.

Interromper uma tarefa de coleta em execução

Para interromper uma tarefa de coleta já em execução:

  1. Visualize as instruções SQL em execução no nó de dados:

    SHOW FULL PHYSICAL_PROCESSLIST WHERE INFO LIKE '%rand%';
  2. Identifique a instrução que coleta estatísticas e execute uma instrução KILL para interrompê-la:

    KILL '<node_id>-<shard_id>-<statement_id>';

    O identificador de interrupção usa o seguinte formato:

    Campo

    Descrição

    Exemplo

    node_id

    ID do nó de dados

    0

    shard_id

    ID do shard do banco de dados

    0

    statement_id

    ID da instrução SQL a ser interrompida

    222

    Por exemplo, KILL '0-0-222'; interrompe a instrução 222 no nó 0, shard 0.