postgresql - Postgres:统计过去 1 分钟内执行的所有 INSERT 查询
问题描述
我可以对 PostgreSQL 服务器上执行的所有 INSERT 查询进行当前活动计数,如下所示:
SELECT count(*) FROM pg_stat_activity where query like 'INSERT%'
但是有没有办法计算给定时间段内服务器上执行的所有 INSERT 查询?例如在过去的一分钟?
我有一堆表,我向其中发送了很多插入,我想以某种方式汇总每分钟插入的行数。我可以为此编写一个解决方案,但是如果可以以某种方式直接从服务器中提取,那就容易多了。
像这样的任何类型的统计数据,在某个时间段内,将非常有帮助,查询处理所需的平均时间,或知道每分钟通过的带宽等。
注意:我使用的是 PostgreSQL 12
解决方案
我相信你可以使用审计触发器。
此审核将创建一个表,用于注册和 INSERT
操作。所以你可以适应。因此,每次您的数据库运行其中一个命令时,审计表都会记录操作、表和操作时间。因此,使用一分钟前的 a在所需的桌子上做 a 会很容易。UPDATE
DELETE
COUNT()
WHERE
推荐阅读
- android - Reactivex Observable 阻塞 UI 线程
- reactjs - 如何在 React/GatsbyJs 上定义 backgroundImageUrl
- unit-testing - Grails 3.3.8 单元测试服务
- angularjs - AngularJS(yeoman 生成器)使用 ng-boostrap 库导入问题
- azure-eventhub - 事件中心命名空间中的事件订阅如何工作?
- amazon-web-services - 即使在删除所有入站规则并删除 AWS 上的公共 IP 之后,Gitlab 运行程序也会构建图像
- weka - Weka 时间序列预测包无法识别上传的数据
- python - 在pyspark中,为什么`limit`后跟`repartition`会创建完全相同的分区大小?
- excel - 在这种情况下如何使用 COUNTIF 和 SUBTOTAL?
- xamarin.forms - CrossGeeks GoogleClientPlugin 覆盖 2 个插件的 OpenUrl