如何查看在函数中运行的语句(Greenplum)
Posted
技术标签:
【中文标题】如何查看在函数中运行的语句(Greenplum)【英文标题】:How to view Statements running with in a function (Greenplum) 【发布时间】:2021-05-07 13:23:15 【问题描述】:有什么方法可以找到在 Greenplum 中的函数/过程中运行的语句,例如我们有“pg_stat_activity”来查看在 Greenplum 数据库中运行的查询?
pg_stat_activity 仅显示正在运行/空闲等的语句,但不显示正在运行的函数内部运行的语句。
Greenplum 中是否还有其他包含此信息的视图或表格?
【问题讨论】:
【参考方案1】:不,目前不可见。
命令中心可能会让您深入了解实际的查询处理,但这与函数内部执行的内容并不是直接的 1:1 关系。
【讨论】:
【参考方案2】:是的,正如 Scherbaum 所说,您无法检查它。唯一的解决方法是在函数中设置动态变量。如下:
CREATE OR REPLACE FUNCION test_func()
AS $$
DECLARE
vStep int;
-- <few other variables>
BEGIN
vStep := 1000
-- <ANY SQL>
RAISE INFO '%: Completed', vStep
vStep := 2000
-- <ANY SQL>
RAISE INFO '%: Completed', vStep
-- and so on
END $$
您可以在您的进度日志中查看它。 上面的代码只是一个伪代码给出一个想法,不会按原样工作。
【讨论】:
以上是关于如何查看在函数中运行的语句(Greenplum)的主要内容,如果未能解决你的问题,请参考以下文章
Greenplum(PostgreSql)函数实现批量删除表
我可以使用 NIFI 在 GreenPlum 和 Postgresql 中运行存储函数吗?如果是,那么我应该使用哪个处理器和啥配置?