postgres慢查询实操

配置要记录慢查询的时间

#在postgresql.conf中配置全局慢查询日志(毫秒),需要重新reload配置
log_min_duration_statement=10000;
#或者针对数据库(毫秒),执行sql语句,(验证未成功,再找找原因)
alter database xxdbname set log_min_duration_statement=5000;

#重新加载配置
su - postgres 
pg_ctl reload 
或者
select pg_reload_conf();

#查看慢查询日志配置
show log_min_duration_statement;

构建延迟测试,使用事务并设置sleep(秒数);

begin TRANSACTION; 
select pg_sleep(5);
select now() ;
END TRANSACTION;

获取慢日志分析

1.sql实时获取,时间支持ms

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 ;

2.通过工具(暂未使用):https://github.com/darold/pgbadger

3.或者直接查询pg日志文件查找:

查看日志存储位置

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;

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值