20.9. Estatísticas em tempo de execução

20.9.1. Coletor de estatísticas de consulta e de índice
20.9.2. Monitoramento de estatísticas

20.9.1. Coletor de estatísticas de consulta e de índice

Esses parâmetros controlam os recursos de coleta de estatísticas em todo o servidor. Quando a coleta de estatísticas está ativa, os dados produzidos podem ser acessados por meio da família de visões do sistema pg_stat e pg_statio. Veja Monitoramento das atividades do banco de dados para obter mais informações.

track_activities (boolean)

Ativa a coleta de informações sobre o comando atualmente em execução de cada sessão, juntamente com seu identificador, e a hora em que esse comando iniciou a execução. Esse parâmetro está ativo por padrão. Note que mesmo quando está ativo, essa informação não fica visível para todos os usuários, apenas para os superusuários, funções de banco de dados (roles) com o privilégio da função pg_read_all_stats, e o usuário dono das sessões sendo reportadas (incluindo sessões pertencentes a uma função de banco de dados da qual têm privilégios), portanto, não deve representar um risco à segurança. Somente superusuários podem mudar essa configuração.

track_activity_query_size (integer)

Especifica a quantidade de memória reservada para armazenar o texto do comando atualmente em execução para cada sessão ativa, para o campo pg_stat_activity.query. Se o valor for especificado sem unidade, será considerado como bytes. O valor padrão é de 1024 bytes. Esse parâmetro só pode ser definido na carga do servidor.

track_counts (boolean)

Ativa a coleta de estatísticas sobre a atividade do banco de dados. Esse parâmetro está ativo por padrão, porque o daemon autovacuum precisa das informações coletadas. Somente superusuários podem mudar essa configuração.

track_io_timing (boolean)

Ativa a cronometragem das chamadas de E/S do banco de dados. Esse parâmetro está inativo por padrão, porque consulta repetidamente o sistema operacional sobre a hora corrente, o que pode causar uma sobrecarga significativa em algumas plataformas. Pode ser usada a ferramenta pg_test_timing para medir a sobrecarga da cronometragem no sistema. As informações de cronometragem de E/S são mostradas na visão pg_stat_database, na saída de EXPLAIN, quando é usada a opção BUFFERS, pelo autovacuum para auto-limpezas e auto-análises, quando log_autovacuum_min_duration está definido, e por pg_stat_statements. Somente superusuários podem mudar essa configuração.

track_wal_io_timing (boolean)

Ativa a cronometragem de chamadas de E/S do WAL. Esse parâmetro está inativo por padrão, porque consulta repetidamente o sistema operacional sobre a hora corrente, o que pode causar sobrecarga significativa em algumas plataformas. Pode ser usada a ferramenta pg_test_timing para medir a sobrecarga de cronometragem no sistema. As informações de cronometragem de E/S são mostradas na visão pg_stat_wal. Somente superusuários podem mudar essa configuração.

track_functions (enum)

Ativa o rastreamento de contagens de chamadas de função e tempo usado. Deve ser especificado pl para rastrear apenas as funções escritas em linguagem procedural, e all para rastrear também as funções escritas nas linguagens SQL e C. O padrão é none, que desativa o rastreamento de estatísticas de função. Somente superusuários podem mudar essa configuração.

Nota

As funções escritas na linguagem SQL, que são simples o suficiente para serem incorporadas (inlined), ou seja, substituídas no código da consulta chamadora, não serão rastreadas, independentemente dessa configuração.

stats_temp_directory (string)

Define o diretório para armazenar dados estatísticos temporários. Pode ser um caminho relativo ao diretório de dados, ou um caminho absoluto. O valor padrão é pg_stat_tmp. Apontar essa configuração para um sistema de arquivos baseado em RAM diminui os requisitos físicos de E/S, podendo levar a um melhor desempenho. Esse parâmetro só pode ser definido no arquivo postgresql.conf, ou na linha de comando do servidor.

20.9.2. Monitoramento de estatísticas

compute_query_id (enum)

Ativa a computação interna (in-core) do identificador de consulta. Os identificadores de consulta podem ser vistos na visão pg_stat_activity, usando o comando EXPLAIN, ou escrito no registro de eventos, se configurado através do parâmetro log_line_prefix. A extensão pg_stat_statements também requer que seja calculado um identificador de consulta. Note que pode ser usado um módulo externo como alternativa, se o método de cálculo do identificador de consulta interno não for aceitável. Nesse caso, a computação interna deve estar sempre inativa. Os valores válidos são off (sempre inativo), on (sempre ativo), auto, que deixa que módulos como pg_stat_statements o ativem automaticamente, e regress, que tem o mesmo efeito que auto, exceto pelo identificador da consulta não ser mostrado na saída do comando EXPLAIN, para facilitar o teste de regressão automatizado. O valor padrão é auto.

Nota

Para garantir que apenas um identificador de consulta seja calculado e mostrado, as extensões que calculam identificadores de consulta deverão gerar um erro se um identificador de consulta já tiver sido calculado.

log_statement_stats (boolean)
log_parser_stats (boolean)
log_planner_stats (boolean)
log_executor_stats (boolean)

Para cada consulta, envia estatísticas de desempenho do respectivo módulo para o registro de eventos do servidor. Esse é um instrumento rudimentar de perfilhamento, semelhante ao recurso getrusage() do sistema operacional Unix. O parâmetro log_statement_stats reporta estatísticas totais das instruções, enquanto os demais reportam estatísticas por módulo. O parâmetro log_statement_stats não pode ser ativado junto com nenhuma das opções por módulo. Todas essas opções estão inativas por padrão. Somente superusuários podem alterar essas configurações.