postgresql slow sql report 慢查询报告

本文介绍了一种利用Shell脚本来统计PostgreSQL慢查询的方法。通过配置postgresql.conf文件启用慢查询日志记录,并设置日志输出格式。接着使用自定义Shell脚本解析日志文件,统计特定日期内执行时间超过设定阈值的SQL数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

其实也不完全算PostgreSQL的技巧,应该算是SHELL技巧。
首先要配置好postgresql.conf,让PG记录下慢查询,并且日志固定格式,如下:
log_destination = 'csvlog'
log_min_duration_statement = 100ms
pg_ctl reload -D $PGDATA

来看一个统计的例子:
vi digoal.sh

#!/bin/bash
if [ $# -ne 2 ]; then
echo "Use 2 parameter"
exit
fi

file=$1
slow=$2
cnt=0
for i in `grep duration $1|grep SELECT|awk '{print $6}'|awk -F "." '{print $1}'`
do
if [ $i -gt $slow ]; then
cnt=$(($cnt+1))
fi
done
echo "Count Slow Sql (>$slow ms) In The $file : $cnt"

chmod 500 digoal.sh

例如,查询7月14号的慢查询,大于500MS的有多少条:
./digoal.sh "/var/log/pg_log/postgresql-2011-07-14*.csv" 500
Count Slow Sql (>500 ms) In The /var/log/pg_log/postgresql-2011-07-14*.csv : 13324
一天13324条执行时间超过500MS的SQL。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值