我正在寻找一种有效收集统计信息的方法,这些统计信息可以告诉我在给定的时间内调用每个函数的次数。
有效率,我的意思是stat收集器应尽可能少地使用磁盘I / O操作。
如果我还可以跟踪更多的统计数据,例如返回时间,那将是很好的,但这不是必需的。
答案 0 :(得分:3)
它已经内置了。
查看系统视图pg_stat_user_functions
http://www.postgresql.org/docs/current/static/monitoring-stats.html#PG-STAT-USER-FUNCTIONS-VIEW
请注意,您需要在postgresql.conf
中启用该功能:
http://www.postgresql.org/docs/current/static/monitoring-stats.html#MONITORING-STATS-SETUP
要重置收集的统计信息,请使用pg_stat_reset()
:
http://www.postgresql.org/docs/current/static/monitoring-stats.html#MONITORING-STATS-FUNCTIONS
答案 1 :(得分:3)
除了马提到的功能之外,还有:
pg_stat_statements
pg_stat_plans
,pg_stat_statements
pgbadger
,一个日志分析工具pgtop
,一个实时活动监控器我认为任何生产PostgreSQL安装的pgbadger
和pg_stat_statements
必不可少的组件。