PostgreSQL的SQL日志文件
从PostgreSQL的SQL日志文件提取待优化的SQL语句.
如何启用SQL日志功能
1. 定位 postgresql.conf文件
- 在基于Debian的系统,
postgresql.conf
位于/etc/postgresql/$version/main/
, - 在基于Red Hat的系统,
postgresql.conf
位于/var/lib/pgsql/data/
.
如果你还是没有找到postgresql.conf
, 请在终端中输入,
locate postgresql.conf
或者在数据库客户端中执行
show config_file;
日志参数设置
打开postgresql.conf
, 修改以下参数.
vi postgresql.conf
log_statement = 'all'
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
logging_collector = on
如果您的数据库版本低于8.0, 在设置log_statement
参数时,请使用true
代替all
.
log_statement = 'true'
您可以通过设置log_min_duration_statement
参数来只记录执行时间超过指定阈值(单位为ms)的慢SQL.
log_min_duration_statement = 5000
3. 重启服务
通过如下命令重启数据库服务器以使配置生效。
sudo /etc/init.d/postgresql restart
或者
sudo service postgresql restart
查看日志文件确认全部或是部分SQL是否已被记录.