PostgreSQL 有没有办法统计每个 SQL 执行的次数

2020 年 6 月 1 日
 imherer
最近有个需求是要看每个 SQL 的执行次数占比,PostgreSQL 本身有什么地方有统计这个东西吗?

还是只能自己做 log 统计了?
4864 次点击
所在节点    PostgreSQL
10 条回复
opengps
2020 年 6 月 1 日
怎样算每个?
一般来说查询语句里都有动态参数,参数不通时候算一个还是算不同的?
imherer
2020 年 6 月 1 日
@opengps 对了,忘了说这点了。 参数不同算一个,所有动态参数都算一个
optional
2020 年 6 月 1 日
不如自己做,还可以制定逻辑,最简单的是继承一下 pg 的驱动类,换成自己的异步记录一下
maierhuang
2020 年 6 月 1 日
pg_stat_statements 这个插件
hantsy
2020 年 6 月 1 日
Redhat Debezium 可以监控所有的数据操作,EDA 框架,可以发送 Apache kafka 等。

https://debezium.io/

其实这东西实现也不是太难,在 SQL 执行之前加入 Hook, 通过消息发送到自己的统计数据库(比如 Redis )里面去。
cstj0505
2020 年 6 月 1 日
日志开启 sql 记录,pgbadger 分析日志
sparkle2015
2020 年 6 月 1 日
lff0305
2020 年 6 月 1 日
如果是 Java 程序的话可以用一些 JDBC Driver 的 Wrapper 来做这件事
类似 JDBC Performance Logger
hangszhang
2020 年 6 月 2 日
自己在 server 层做, 记录在日志里面, flume 实时收集或者离线脚本定期收集日志
encro
2020 年 7 月 1 日
mysql 慢日志分析工具室可以的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/677366

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX