對300萬一張表數據,用游標進行循環,不同寫法的效率比較
?
1、顯示游標
?
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;
?
--耗時48秒
?
2、隱式游標
?
declare
? ??
begin
? ? for cur_2 in (select c.cust_name from ea_cust.cust_info c) loop
? ??
? ? ? ?NULL;?
? ??
? ? end loop;
?
end;
?
--耗時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;
?
--耗時13秒,看樣子這種最快
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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