Stored procedures Netteza数百万行循环、计算并插入到新表中

Stored procedures Netteza数百万行循环、计算并插入到新表中,stored-procedures,netezza,Stored Procedures,Netezza,我一直在尝试在Netteza中循环一个包含数百万行的表,为每一行计算一个度量值(因为它是一个循环,所以它本身需要大量的时间),然后将其写入一个新表 我正在使用insert into。但是,对于这种类型的过程来说,Netezza似乎太慢了!有什么建议吗 CREATE OR REPLACE PROCEDURE "SP"() RETURNS INTEGER LANGUAGE NZPLSQL AS BEGIN_PROC DECLARE r record; col2 int; BEGIN for r

我一直在尝试在Netteza中循环一个包含数百万行的表,为每一行计算一个度量值(因为它是一个循环,所以它本身需要大量的时间),然后将其写入一个新表

我正在使用insert into。但是,对于这种类型的过程来说,Netezza似乎太慢了!有什么建议吗

CREATE OR REPLACE PROCEDURE "SP"()
RETURNS INTEGER
LANGUAGE NZPLSQL AS 
BEGIN_PROC
DECLARE 
r record;
col2 int;
BEGIN

for r in select * from x    
Loop

col2 =  "SP_1"(r.q);
insert into some_table values(r.col1 , col2);
End Loop;

END;
END_PROC;

存储过程的过程逻辑在主机而不是MPP后端运行。获得良好性能的方法是转移到一个集合处理模型,而不是逐行模型。这种改变可能必须在SP_1中进行。如果你想分享代码,我们可能会想出一些东西。谢谢。说得好。我最终不得不更改SP_1,而不是逐行更改。存储过程的过程逻辑在主机而不是MPP后端运行。获得良好性能的方法是转移到一个集合处理模型,而不是逐行模型。这种改变可能必须在SP_1中进行。如果你想分享代码,我们可能会想出一些东西。谢谢。说得好。我最终不得不更改SP_1,而不是逐行更改。