咨询一个各位老师,我有几千条update 语句,放到begin .... end的语句块中,执行效率比较底,不知道有什么好的方法吗?
这些update 都是单表更新,如 update aa set x=y where id=z 这样简单的。我测试了语句块中放6000行这样的Update语句,执行完要7分钟,3000条要1分多钟,我不知道语句块中放多少语句是最合理的。放1万条ORACLE直接给我报错,错误 如下:ORA-04030,在尝试分配4088字节(PLS CGA hp.pdzgM64_New_Link)时进程内存不足。
这些update 都是单表更新,如 update aa set x=y where id=z 这样简单的。我测试了语句块中放6000行这样的Update语句,执行完要7分钟,3000条要1分多钟,我不知道语句块中放多少语句是最合理的。放1万条ORACLE直接给我报错,错误 如下:ORA-04030,在尝试分配4088字节(PLS CGA hp.pdzgM64_New_Link)时进程内存不足。
v_sql varchar2(1000);
begin
v_sql := 'update aa set x = :1 where id = :2';
execute immediate v_sql using 'ccc', 100;
execute immediate v_sql using 'ddd', 200;
end;