如何查看在函数中运行的语句(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)的主要内容,如果未能解决你的问题,请参考以下文章

在plpython函数greenplum数据库中插入语句

Greenplum 调优--查看子节点SQL运行状态

如何检查greenplum数据库表的交易历史?

cognos greenplum pg_catalog

Greenplum(PostgreSql)函数实现批量删除表

我可以使用 NIFI 在 GreenPlum 和 Postgresql 中运行存储函数吗?如果是,那么我应该使用哪个处理器和啥配置?