pg_stat_statements 的时间表是什么

Mad*_*tre 5 sql database postgresql postgresql-9.2 pg-stat-statements

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

Luk*_*ttl 6

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

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

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

1)每 24 小时调用一次 pg_stat_statements_reset(),这意味着查询数据将仅反映最近的活动(理想情况下您会跟踪重置发生的时间,因此您可以计算出每分钟的调用次数等)

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

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

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


sti*_*bit 5

没有时间范围,只有跟踪的语句的最大数量。

F.28.3。配置参数

pg_stat_statements.max (integer)

pg_stat_statements.max是模块跟踪的最大语句数(即视图中的最大行数pg_stat_statements)。如果观察到的不同语句多于该数量,则有关执行次数最少的语句的信息将被丢弃。默认值为1000。该参数只能在服务器启动时设置。