Imagine que seu sistema acesse uma base de dados PostgresSQL e que esta esteja a cada dia demorando mais e mais para retornar as queries. Você sabe que seu banco cresce dia após dia. Então você precisa saber quais as queries são mais lentas para então otimizar/limpar o banco.
Existe um recurso no postgres que faz log destas queries mais lentas a configuração é bem simples e exige o reinicio do serviço de postgres
Edite o arquivo /home/pgsql/data/postgresql.conf
Encontre a configuração “log_min_duration_statement”. Provavelmente estará com o valor marcado como “-1″
Ou seja, está desligado.
Troque o valor para Zero caso queira “logar” todas as queries.
Ou troque para um valor maior que Zero para capturar queries lentas no diretório “pg_log” .
Ex:
Geração de logs desativadas
# log_min_duration_statement = -1
Loga todas as queries. Pois nenhuma querie vai ser menor que Zero segundos.
# log_min_duration_statement = 0
Loga todas as queries que demorem mais de 250ms (mílisegundos) para ser executada.
# log_min_duration_statement = 250
Loga todas as queries que demorem mais de 1000ms (1 segundo) para ser executada.
# log_min_duration_statement = 1000
Após a alteração do parametro, salve o arquivo, reinicie o serviço de postgres.
Agora basta acompanhar o log sendo gerado. Provavelmente no caminho abaixo
tail -f /home/pgsql/data/pg_log/postgresql-<ano>-<mes>-<dia>_<hora do ultimo restart>.log
No link temos a documentação oficial sobre o parametro:
http://www.postgresql.org/docs/8.3/interactive/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-WHENÉ isso ai pessoal comentarios são bem vindos.