sql - pg_stat_statements 的时间范围是多少

标签 sql database postgresql postgresql-9.2 pg-stat-statements

我想知道 postgres 中的“pg_stat_statements” View 。 数据的时间范围是什么?它显示的是过去 24 小时内执行的查询还是执行的全部查询?由于该表不包含任何时间戳。

最佳答案

pg_stat_statements 提供的 View 的时间范围是从上次重置 (pg_stat_statements_reset) 或创建扩展的时间开始的,这可能是很长的时间。

如果达到最大阈值(在最近的 Postgres 版本上为 5000),则有逻辑使不频繁的语句过期,这意味着如果您不经常查询 View ,您可能看不到完整的事件。

为了更好地处理这些数据,您基本上有两个选择:

1) 每 24 小时调用一次 pg_stat_statements_reset(),这意味着查询数据只会反射(reflect)最近的事件(理想情况下,您会跟踪重置发生的时间,这样您就可以计算出数量每分钟的通话次数等)

2) 使用单独的监控工具拍摄快照并保留历史 pg_stat_statements 统计信息

您选择哪一个取决于您的要求,但我通常会选择 (2) 用于生产系统。

免责声明:我是 pganalyze ( https://pganalyze.com) 的作者,这是一个托管的 Postgres 监控工具,还提供历史 pg_stat_statement 统计数据。

关于sql - pg_stat_statements 的时间范围是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50803147/

相关文章:

mysql - 使用 IN 运算符的 SQL 查询

mysql - 如何创建在两个以上 mirth-connect 服务器之间共享的单个 MySQL 数据库服务器?

sql - 错误消息 : "PostgreSQL said: could not write block 119518 of temporary file: No space left on device" PostgreSQL

mysql - sql查询错误,

java - 将数组列映射到 Projection 接口(interface) : No Dialect mapping for JDBC type: 2003

postgresql - 如何从本地机器连接到 heroku pg?

sql - 如何计算将 null 视为零的平均值

SQL: "... WHERE result<4.0"如果 'result' 是: "15.2","UNK","1.4"?

MYSQL Left Join on multiple table 但只选择最近的行

mysql - 删除后数据库表非常慢