问题描述
有什么方法可以找到在 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 $$
您可以在日志中查看进度。 上面的代码只是一个提供想法的伪代码,不会照原样运行。