对于大表批量操作建议用游标操作.
如对以下大表的操作,直接update耗时约16min;运用游标后耗时3min左右
注意:游标打开后,服务器会专门为游标分配一定的内存空间存放游标操作的数据结果集,同时使用游标也会对某些数据进行封锁。所以游标一旦用过,应及时关闭,避免服务器资源浪费。
关于游标的具体使用请移步参考:https://www.cnblogs.com/jdzhang/p/7576520.html
declare
po_success integer;
po_info varchar2(2000);
cursor cur_cdr is
--查询目标数据
SELECT ID FROM LISTING_QUEUE_LAZ where SALE_SITE='SGAMZ';
type type_listing_queue_laz_id is table of LISTING_QUEUE_LAZ.ID%type;
table_listing_queue_laz_id type_listing_queue_laz_id;
ln_cnt number := 0;
begin
open cur_cdr;
loop
fetch cur_cdr bulk collect
into table_listing_queue_laz_id limit 10000;
ln_cnt := ln_cnt + table_listing_queue_laz_id.count;
-- forall i in 1 .. tab