A configuração log_min_duration_statement é ignorada


15

Estou executando Postgresql 9.1no Ubuntu. A versão exata do Postgresql é 9.1+129ubuntu1como meu gerenciador de pacotes mostra.

Eu tenho 2 bancos de dados ativamente em uso e eles são usados ​​em um servidor remoto.

Desejo registrar consultas com um longo tempo de execução. Então eu defino os seguintes parâmetros no /etc/postgresql/9.1/main/postgresql.confarquivo

log_min_duration_statement = 10000
log_statement = 'mod'

então o Postgresql registrará consultas que levam mais de 10 segundos.

Mas quando eu reloadconfiguro o postgres, o Postgresql começa a registrar todas as consultas que se ajustam ao log_statementvalor. Que eu defino a duração para 100 segundos para ter certeza

log_min_duration_statement = 100000

Mas o Postgresql continua registrando todas as consultas que se ajustam ao log_statementvalor, independentemente do log_min_duration_statementvalor.

Definir log_statementpara noneparecia parar de registrar.

Há algo que eu perdi na configuração?


O fato é que você registra a união dos dois conjuntos, não a interseção. Não sei se isso pode ser feito como você gostaria.
Dezso

Então, devo desativar (comentar) log_statementpara log_min_duration_statementque funcione?
precisa saber é o seguinte

Se você deseja simplesmente registrar todas as instruções de execução longa (seja uma SELECT, UPDATEou alguma DDL), então sim.
Dezso

Respostas:


21

Você estava perto. Sua última idéia é realmente o caminho a seguir:

log_statement = none
log_min_duration_statement = 10000

Em seguida, nenhuma instrução será registrada, exceto aquelas executadas por mais de 10 segundos - incluindo a própria string de consulta. O registro pode ter parado porque 10 segundos é um limite alto. Estou usando 2 segundos normalmente, mas YMMV.

Esta resposta relacionada ao SO tem mais:
Não é possível obter log_min_duration_statement para funcionar


3
Deixe-me acrescentar que o padrão para log_statementé none, portanto, não defini-lo ou defini-lo como nonetem o mesmo efeito.
Dezso
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.