环境
- Red Hat Enterprise Linux 6
- postgresql-server
问题
- How to activate slow queries logs in postgresql?
决议
You could set this in postgresql.conf, To find the postgresql.conf you could use the find command like this:
Raw
# find / -name postgresql.conf
Now, in the postgresql.conf file you should look for the line:
Raw
#log_min_duration_statement = -1
and replace it with:
Raw
log_min_duration_statement = 500
This will log any querie that takes more than 500ms (miliseconds) to be done. You could adjust this to the value that you may considerer correct.
After that, save the file and reload the PostgreSQL configuration:
Raw
# service postgresql reload
Go to the directory where the logs of PostgreSQL are (comonly located in /var/lib/pgsql/data/pg_lo) and look for the lasted log file created.
Below, you will find an example of a query that took more than 500ms:
Raw
2011-09-29 11:27:39 BRT LOG: duration: 2051.457 ms execute pdo_stmt_000000b4: select * from backuplog WHERE message LIKE '%xyz%'