跟踪进度的最佳方法是什么 PostgreSQL 11中长期运行的功能?
由于每个函数都在单个事务中执行,因此即使该函数写入某个“日志”表,除非该函数以SUCCESS完成,否则其他会话/事务都无法看到此输出。
我在这里阅读了一些尝试,但都是2010年的。
https://www.endpoint.com/blog/2010/04/28/viewing-postgres-function-progress-from
而且,这种方法看起来非常不方便。
到目前为止,什么是跟踪进度的最佳方法?
我知道的一种方法是将功能转换为过程,然后在SP中进行部分提交。但是,如果我想从函数中返回一些结果集,那该怎么办?那种情况下,我无法将其转换为SP,对吗?那么...在这种情况下如何进行?
非常感谢。
注意:该函数用PL / pgSQL编写,这是PostgreSQL中最常见的过程SQL语言。
答案 0 :(得分:2)
我不知道有一种很棒的方法可以将其内置到postgres中,但是有两种方法可以实现在函数外部可见的日志记录。
这两种方法都不是理想的选择,但希望可以为您服务。将您的函数转换为过程也可以,但是您将无法在事务中调用该过程。