c+oracle+bulk,【讨论】bulk collect insert 效率慢

批量插入数据,2个半小时才插入了100w数据。

大伙帮忙分析一下,到底什么原因???

cursor c_earn_prem12_adj (c_cal_month  dxpg_prem_mid_table.j_date%type)is

select /*+parallel(a,10) full(a)*/sys_guid() id_ep_claim_ibnr_fr,

deptflag,

role_type,

busi_src_type,

plan_code,

'*' manage_fee_rate,

c_cal_month val_month,

0 tot_gross,

0 tot_net_prem,

0 tot_gross_accu ,

0 tot_net_accu ,

0 ep_gross_adj,

0 ep_net_adj ,

0 ep_gross_org,

0 ep_net_org,

sum(earn_gross_prem) ep_gross_12,

sum(earn_net_prem) ep_net_12,

0 ep_gross_accu,

0 ep_net_accu,

0 paid_amt_adj,

0 paid_amt_org,

0 paid_amt_12,

0 paid_amt_accu,

0 acci_amt_adj,

0 acci_amt_org,

0 acci_amt_12,

0 acci_amt_accu,

0 ibnr_bf,

0 ibnr_cl,

0 unearned_gross_adj,

0 unearned_net_adj,

0 unearned_gross_org,

0 unearned_net_org,

category_type,

polno,

undwrt_date,

0 exp_paid_amt_adj,

0 exp_paid_amt_org,

0 exp_paid_amt_12,

0 exp_paid_amt_accu,

'gresvcde' created_by,

sysdate created_date,

'gresvcde' updated_by,

sysdate updated_date,

0 ibnr ,

0 ir,

0 claim_salary,

0 claim_expense_ibnr,

0 ibnr_margin,

0 claim_salary_accu,

0 claim_salary_12

from dxpg_prem_mid_table a

where earn_prem_month_adj <= c_cal_month

and earn_prem_month_adj >  c_cal_month - 100

group by deptflag,

polno,

plan_code,

role_type,

busi_src_type,

category_type,

undwrt_date ;

type v_earn_prem12_adj is table of c_earn_prem12_adj%rowtype index by binary_integer;

d_earn_prem12_adj  v_earn_prem12_adj;

open c_earn_prem12_adj(p_cal_month);

loop

fetch c_earn_prem12_adj bulk collect

into d_earn_prem12_adj limit 30000; --分批次提交,每次 30000

forall ind in d_earn_prem12_adj.first .. d_earn_prem12_adj.count

insert into ep_claim_ibnr_fr values d_earn_prem12_adj(ind);

commit;

exit when c_earn_prem12_adj%notfound;

end loop;

close c_earn_prem12_adj;

commit;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值