對(duì)300萬一張表數(shù)據(jù),用游標(biāo)進(jìn)行循環(huán),不同寫法的效率比較
?
1、顯示游標(biāo)
?
declare
? ? cursor cur_2 is select a.cust_name from ea_cust.cust_info a;
? ? cust_id varchar2(100);
? ??
begin
? ? open cur_2;
? ? loop
? ? ? ? fetch cur_2 into cust_id;
? ? ? ? exit when cur_2%notfound;
? ? ? ? NULL;
? ? end loop;
? ? close cur_2;
end;
?
--耗時(shí)48秒
?
2、隱式游標(biāo)
?
declare
? ??
begin
? ? for cur_2 in (select c.cust_name from ea_cust.cust_info c) loop
? ??
? ? ? ?NULL;?
? ??
? ? end loop;
?
end;
?
--耗時(shí)16秒
?
3、bulk collect into + cursor
?
declare
? ? cursor cur_3 is select a.cust_name from ea_cust.cust_info a;
? ? type t_table is table of varchar2(100);
? ? c_table t_table;
? ? to_cust_id varchar2(100);?
begin
? ? open cur_3;
? ? loop
? ? ? ? ?fetch cur_3 bulk collect into c_table limit 100;
? ? ? ? ?exit when c_table.count = 0;
? ? ? ? ?for i in c_table.first..c_table.last loop
? ? ? ? ? ? ?null;
? ? ? ? ? ? ?
? ? ? ? ?end loop; ? ? ? ??
? ? end loop;
? ? commit;
end;
?
--耗時(shí)13秒,看樣子這種最快
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
