跳到主要内容

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是否已被记录.