我的Postgres每秒执行多少查询?


15

如何知道我的Postgres数据库每秒执行多少查询?



@thtsigma不回答这个问题。MySQL的查询统计信息,PG的仅查询统计信息。

1
您是否尝试过任何Postgres分析工具,例如pg_top
emallove13年

postgresql.org/docs/9.3/static / ...例如,从pg_stat_database中选择tup_inserted
sivann 2014年

Answers:


11

使用此查询来读取所有数据库中执行的事务总数:

SELECT sum(xact_commit+xact_rollback) FROM pg_stat_database;

如果您只想为一个数据库使用相同的计数器,请使用:

SELECT xact_commit+xact_rollback FROM pg_stat_database WHERE datname = 'mydb';

要计算TPS(每秒事务数),请运行几次查询并计算时间间隔内的差异。

有为此目的的现成工具,其中之一是http://bucardo.org/wiki/Check_postgres

更多信息:http : //www.postgresql.org/docs/9.2/static/monitoring-stats.html#PG-STAT-DATABASE-VIEW


更新:康拉德纠正了我对他的问题的误解。目标是计算查询,而不是事务。

如何计算查询?

方法1

使用pg_stat_statements贡献

方法2

在代表性的时间内启用查询的完整日志记录。

要启用完整日志记录,对于PostgreSQL 9.0-9.3,请在中更改以下设置 postgresql.conf

logging_collector = on
log_line_prefix = '%t '
log_rotation_size = 1GB
log_statement = all

如果你还想看到查询持续时间,可以设置log_min_duration_statement = 0 代替log_statement = all。这对于查询调整非常有用。

然后重新加载配置(重新启动或HUP)并收集足够的日志以估计流量。

注意:两种方法都不会包含嵌入用户定义函数中的查询。


我知道如何计算每秒交易。问题是关于每秒查询。一个事务可以有0个或多个查询。
Konrad Garus 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.