Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Postgres:统计过去1分钟内执行的所有插入查询_Postgresql - Fatal编程技术网

Postgresql Postgres:统计过去1分钟内执行的所有插入查询

Postgresql Postgres:统计过去1分钟内执行的所有插入查询,postgresql,Postgresql,我可以对PostgreSQL server上执行的所有插入查询进行当前活动计数,如下所示: SELECT count(*) FROM pg_stat_activity where query like 'INSERT%' 但是,有没有一种方法可以统计在给定时间段内在服务器上执行的所有INSERT查询?例如,在过去一分钟 我有一堆表,我向其中发送了很多插入,我想以某种方式汇总每分钟插入的行数。我可以为此编写一个解决方案,但如果可以直接从服务器中提取,那么就容易多了 在一定时间段内,任何类型的此类

我可以对PostgreSQL server上执行的所有插入查询进行当前活动计数,如下所示:

SELECT count(*) FROM pg_stat_activity where query like 'INSERT%'
但是,有没有一种方法可以统计在给定时间段内在服务器上执行的所有INSERT查询?例如,在过去一分钟

我有一堆表,我向其中发送了很多插入,我想以某种方式汇总每分钟插入的行数。我可以为此编写一个解决方案,但如果可以直接从服务器中提取,那么就容易多了

在一定时间段内,任何类型的此类统计都会非常有用,查询处理的平均时间,或者知道每分钟通过的带宽,等等


注意:我正在使用PostgreSQL 12

如果尚未完成,请安装pg_stat_statements扩展,并拍摄一些查看pg_stat_语句的快照:diff将给出两个快照之间执行的查询数

注意:它不会保存每个单独的查询,而是将它们参数化,然后保存聚合结果


请参见

如果尚未完成,请安装pg_stat_statements扩展,并拍摄一些查看pg_stat_语句的快照:diff将给出两个快照之间执行的查询数

注意:它不会保存每个单独的查询,而是将它们参数化,然后保存聚合结果


请参见

我相信您可以使用


此审核将创建一个表,用于注册
插入
更新
删除
操作。所以你可以适应。因此,每次数据库运行其中一个命令时,审核表都会注册操作、表和操作时间。因此,使用一分钟前的
WHERE
在所需的表上执行
COUNT()
将很容易。

我相信您可以使用


此审核将创建一个表,用于注册
插入
更新
删除
操作。所以你可以适应。因此,每次数据库运行其中一个命令时,审核表都会注册操作、表和操作时间。因此,使用一分钟前的
WHERE
在所需的表上执行
COUNT()
将很容易。

我找不到任何可靠的内容,因此我创建了一个表,在该表中,我使用作为cron作业运行的脚本记录了大量插入事务。它的实现非常简单,我没有得到估计值,而是得到实际值。我实际上统计了在给定间隔内插入到表中的所有新行

我找不到任何可靠的东西,因此我创建了一个表,在该表中,我使用作为cron作业运行的脚本记录了大量插入事务。它的实现非常简单,我没有得到估计值,而是得到实际值。我实际上统计了在给定间隔内插入到表中的所有新行

您是否使用由序列支持的自动生成的主键?然后,如果近似值足够好,您可以检查当前序列值。我该怎么做?使用
currval
函数。您是否使用序列支持的自动生成主键?然后,如果近似值足够好,您可以检查当前序列值。我该怎么做?使用
currval
函数。