如何查看在函数中运行的语句 (Greenplum)

问题描述

有什么方法可以找到在 Greenplum 的函数/过程中运行的语句,就像我们有“pg_stat_activity”来查看在 Greenplum 数据库中运行的查询一样?

pg_stat_activity 仅显示正在运行/空闲等的语句,但不显示正在运行的函数内运行的语句。

Greenplum 中是否还有其他视图或表包含这些信息?

解决方法

不,目前不可见。

Command Center 可能会让您深入了解实际的查询处理,但这与函数内部执行的内容并不是一对一的直接关系。

,

是的,正如 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 $$

您可以在日志中查看进度。 上面的代码只是一个提供想法的伪代码,不会照原样运行。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...