imherer

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

  •  
  •   imherer · Jun 1, 2020 · 5388 views
    This topic created in 2351 days ago, the information mentioned may be changed or developed.
    最近有个需求是要看每个 SQL 的执行次数占比,PostgreSQL 本身有什么地方有统计这个东西吗?

    还是只能自己做 log 统计了?
    10 replies  •  2020-07-01 16:42:01 +08:00
    opengps
    opengps
    Jun 1, 2020 via Android
    1
    怎样算每个?
    一般来说查询语句里都有动态参数,参数不通时候算一个还是算不同的?
    imherer
    imherer
    OP
    Jun 1, 2020
    2
    @opengps 对了,忘了说这点了。 参数不同算一个,所有动态参数都算一个
    optional
    optional
    Jun 1, 2020
    3
    不如自己做,还可以制定逻辑,最简单的是继承一下 pg 的驱动类,换成自己的异步记录一下
    maierhuang
    maierhuang
    Jun 1, 2020
    4
    pg_stat_statements 这个插件
    hantsy
    hantsy
    Jun 1, 2020
    5
    Redhat Debezium 可以监控所有的数据操作,EDA 框架,可以发送 Apache kafka 等。

    https://debezium.io/

    其实这东西实现也不是太难,在 SQL 执行之前加入 Hook, 通过消息发送到自己的统计数据库(比如 Redis )里面去。
    cstj0505
    cstj0505
    Jun 1, 2020 via Android
    6
    日志开启 sql 记录,pgbadger 分析日志
    lff0305
    lff0305
    Jun 1, 2020
    8
    如果是 Java 程序的话可以用一些 JDBC Driver 的 Wrapper 来做这件事
    类似 JDBC Performance Logger
    hangszhang
    hangszhang
    Jun 2, 2020
    9
    自己在 server 层做, 记录在日志里面, flume 实时收集或者离线脚本定期收集日志
    encro
    encro
    Jul 1, 2020
    10
    mysql 慢日志分析工具室可以的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   537 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 81ms · UTC 20:16 · PVG 04:16 · LAX 12:16 · JFK 15:16
    ♥ Do have faith in what you're doing.