19.9. Estatísticas em tempo de execução #

19.9.1. Estatísticas cumulativas de consultas e índices
19.9.2. Monitoramento de estatísticas

19.9.1. Estatísticas cumulativas de consultas e índices #

Estes parâmetros controlam o sistema de estatísticas cumulativas de todo o servidor. Quando ativo, os dados coletados podem ser acessados ​​por meio da família de visões do sistema pg_stat e pg_statio. Veja Monitoramento da atividade do banco de dados para obter mais informações.

track_activities (boolean) #

Ativa a coleta de informações sobre o comando em execução no momento em cada sessão, juntamente com seu identificador e a hora em que a execução desse comando foi iniciada. Este parâmetro está ativo por padrão. Note-se que, mesmo quando está ativo, esta informação só é visível por superusuários, por usuários com o privilégio pg_read_all_stats, e pelo usuário dono das sessões sobre as quais se está relatando (incluindo sessões pertencentes a um usuário cujos privilégios este possua); portanto, não deve representar um risco de segurança. Apenas superusuários e usuários com o privilégio SET apropriado podem alterar esta 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 sendo bytes. O padrão é 1024 bytes. Este parâmetro só pode ser definido na ativação do servidor.

track_counts (boolean) #

Ativa a coleta de estatísticas sobre a atividade do banco de dados. Este parâmetro está ativo por padrão, porque o daemon autovacuum precisa das informações coletadas. Apenas superusuários e usuários com o privilégio SET apropriado podem alterar esta configuração.

track_cost_delay_timing (boolean) #

Ativa a medição do tempo de atraso do VACUUM baseado em custo. (veja Atraso do VACUUM baseado em custos). Este parâmetro está inativo por padrão, porque consulta repetidamente o sistema operacional em busca da hora corrente, o que pode causar uma sobrecarga significativa em algumas plataformas. Pode-se usar a ferramenta pg_test_timing para medir a sobrecarga da medição de tempo no sistema. As informações de medição do tempo de atraso do VACUUM baseado em custo são mostradas em pg_stat_progress_vacuum, pg_stat_progress_analyze, na saída de VACUUM e em ANALYZE quando a opção VERBOSE é usada, e pelo Processo de limpeza automática para operações de auto-vacuum e auto-analyze quando log_autovacuum_min_duration está ativo. Apenas superusuários e usuários com o privilégio SET apropriado podem alterar esta configuração.

track_io_timing (boolean) #

Ativa a medição de tempo de espera de E/S do banco de dados. Este parâmetro está inativo por padrão, porque consulta repetidamente o sistema operacional em busca da hora corrente, o que pode causar uma sobrecarga significativa em algumas plataformas. Pode-se usar a ferramenta pg_test_timing para medir a sobrecarga da medição de tempo no sistema. As informações de medição de tempo de E/S são mostradas nas funções pg_stat_database, pg_stat_io (se object não for wal), pg_stat_get_backend_io (se object não for wal), na saída de EXPLAIN quando a opção BUFFERS é usada, na saída de VACUUM quando a opção VERBOSE é usada, e pelo Processo de limpeza automática para operações de auto-vacuum e auto-analyze quando log_autovacuum_min_duration está ativo, e por pg_stat_statements. Apenas superusuários e usuários com o privilégio SET apropriado podem alterar esta configuração.

track_wal_io_timing (boolean) #

Ativa a medição de tempo de esperas de E/S do WAL. Este parâmetro está inativo por padrão, porque consulta repetidamente o sistema operacional em busca da hora corrente, o que pode causar uma sobrecarga significativa em algumas plataformas. Pode-se usar a ferramenta pg_test_timing para medir a sobrecarga da medição de tempo no sistema. As informações de medição de tempo de E/S são mostradas na visão pg_stat_io para o object wal e na saída da função pg_stat_get_backend_io para o object wal. Apenas superusuários e usuários com o privilégio SET apropriado podem alterar esta 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. Apenas superusuários e usuários com o privilégio SET apropriado podem alterar esta configuração.

Nota

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

stats_fetch_consistency (enum) #

Determina o comportamento quando estatísticas cumulativas são acessadas várias vezes em uma transação. Quando definido como none, cada acesso recupera novamente os contadores da memória compartilhada. Quando definido como cache, o primeiro acesso às estatísticas de um objeto armazena estas estatísticas em cache até o final da transação, a menos que pg_stat_clear_snapshot() seja chamada. Quando definido como snapshot, o primeiro acesso às estatísticas armazena em cache todas as estatísticas acessíveis no banco de dados corrente até o final da transação, a menos que pg_stat_clear_snapshot() seja chamada. Alterar este parâmetro em uma transação descarta o instantâneo de estatísticas. O padrão é cache.

Nota

none é o mais adequado para sistemas de monitoramento. Se os valores forem acessados ​​apenas uma vez, esta é a opção mais eficiente. cache garante que acessos repetidos produzam os mesmos valores, o que é importante para consultas que envolvem, por exemplo, auto-junçõess. snapshot pode ser útil ao inspecionar estatísticas interativamente, mas tem uma sobrecarga maior particularmente se existirem muitos objetos de banco de dados.

19.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-se 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. Neste 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 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. Este é um instrumento rudimentar de criação de perfis, 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 estas opções estão inativas por padrão. Apenas superusuários e usuários com o privilégio SET apropriado podem alterar estas configurações.