您的位置:首页 > 其它

对300万一张表数据,用游标进行循环,不同写法的效率比较

2013-01-06 18:12 363 查看
对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秒,看样子这种最快
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐