我有它运行约4-6分钟,这个PL/SQL程序:如何使PL/SQL执行得更快
DECLARE
i NUMBER := 0;
begin
for x in (select anumber
, position
, character
from sdc_positions_cip
where kind = 'Name')
loop
update sdc_compare_person dcip
set dcip.GESNAM_D = substr(dcip.GESNAM_D, 1, x.position - 1) || x.character ||
substr(dcip.GESNAM_D, x.position + 1, length(dcip.GESNAM_D) - x.position)
where dcip.sourcekey = x.anumber;
i := i + 1;
IF i > 100 THEN COMMIT;
i := 0;
END IF;
end loop;
commit;
end;
/
心中已经放在dcip.sourcekey
和x.anumber
的索引。 它使用的表空间是10GB。
有没有办法让这个程序(很多)更快?
多久查询持续多久?我没有看到有太多的改善,你也可以添加索引“kind”。如果数据量为10GB,那么表格中有很多数据。 – MirzaS
摆脱频繁的提交。最后只提交一次。 –