配置要记录慢查询的时间
#在postgresql.conf中配置(毫秒)
log_min_duration_statement=10000;
#或者针对数据库(毫秒),执行sql语句
alter database xxdbname set log_min_duration_statement=5000;
构建延迟测试,使用事务并设置sleep(秒数);
begin TRANSACTION;
select pg_sleep(5);
select now() ;
END TRANSACTION;
获取慢日志分析
select * from pg_stat_activity where state<>'idle' and now()-query_start > interval '1 s' order by query_start ;
select * from pg_stat_activity where state<>'idle' and now()-query_start > interval '500 ms' order by query_start ;
查看日志存储位置
log_destination = 'csvlog' #开了这个后,下面log_filename指定的log后缀文件将不会有内容,全部在csv文件中
logging_collector = on
log_directory = 'pg_log' #当前目录下的pg_log文件夹
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
下载当前csv文件分析:
可以看出当前执行过5秒的sql;