fil*_*rem 19
使用此查询读取在所有数据库中执行的事务总数:
SELECT sum(xact_commit+xact_rollback) FROM pg_stat_database;
Run Code Online (Sandbox Code Playgroud)
如果您只想为一个数据库使用相同的计数器,请使用:
SELECT xact_commit+xact_rollback FROM pg_stat_database WHERE datname = 'mydb';
Run Code Online (Sandbox Code Playgroud)
要计算 TPS(每秒事务数),请多次运行查询并计算时间间隔内的差异。
有现成的工具,其中之一是http://bucardo.org/wiki/Check_postgres
更多信息:http : //www.postgresql.org/docs/9.2/static/monitoring-stats.html#PG-STAT-DATABASE-VIEW
更新:康拉德纠正了我对他问题的误解。目标是计算查询,而不是交易。
如何统计查询?
方法一
方法二
在有代表性的时间段内启用完整的查询日志记录。
要启用完整日志记录,对于 PostgreSQL 9.0 - 9.3,请更改以下设置 postgresql.conf
logging_collector = on
log_line_prefix = '%t '
log_rotation_size = 1GB
log_statement = all
Run Code Online (Sandbox Code Playgroud)
如果你还想看到查询持续时间,可以设置log_min_duration_statement = 0 代替的log_statement = all。这对于查询调优非常有用。
然后重新加载配置(重启或 HUP)并收集足够的日志来估计流量。
注意:这两种方法都不会包含嵌入在用户定义函数中的查询。