我们有一个长时间运行的操作(大约15分钟),它创建了10万到100万个验证行.它是作为存储过程实现的,因为我们不想得到部分验证结果,所以整个验证是一个事务.

有没有办法监控验证操作的进度?换句话说,有没有一种方法可以从这个事务外部查看已经生成了多少行.或任何其他有关计算进度的迹象?

推荐答案

DBLink可用于对客户端轮询的进度表执行UPDATE.更高级的方法是使用DBLink调用NOTIFY来将进度更新发送到支持异步通知的客户端(例如,用C编写的客户端代码).

还可以使用组合方法,以便客户端在收到通知时查询进度表以获得 struct 化的详细信息.

Postgresql相关问答推荐

在 Postgresql 中实现自定义运算符时出错

是否可以调整 PostgreSQL 中的数组以适应 IN 运算符?

PostgreSQL 函数按名称传递参数

从网址获取第一个字符串

pgadmin db 限制服务器属性不起作用

Rails Migration 使用转换将字符串转换为整数

psql中set、\set和\pset的区别

运算符不存在:integer = integer[] 在使用 ANY 的查询中

Rails 重置所有 Postgres 序列?

knex: Select 特定日期范围内的行

使用 try/except 与 psycopg2 或with closing?

带有双引号的 postgresql COPY 和 CSV 数据

SQLAlchemy 和多个进程的连接问题

postgresql 查询以显示用户的组

全文的 Postgresql 前缀通配符

PostgreSQL:如果不存在则创建表 AS

在布尔字段上添加索引

如何使用 postgresql 按计数排序?

postgresql DB中唯一键的正确数据类型是什么?

错误:permission denied for language c