首页 > 数据库技术 > 详细

oracle性能优化

时间:2015-12-21 09:19:19      阅读:249      评论:0      收藏:0      [点我收藏+]

 

 场景:对2千万个数据,修改他们的名字加上后缀“生日”。
普通sql:
 
update calendar_info set title =concat(title, 生日) where specialtype = 1 and not regexp_like(title, 生日);

优化sql:

declare
type rid_Array is table of rowid index by binary_integer;
v_rid rid_Array;
v_Count PLS_INTEGER := 0;
v_Cur sys_refcursor;
v_SQL varchar2(2000) := select t.rowid from calendar_info t where specialtype = 1 and title not like ‘‘%生日‘‘‘;
begin
open v_Cur for v_SQL;
loop
fetch v_Cur bulk collect
into v_rid limit 1000;
forall i in 1 .. v_rid.count()
update calendar_info set title =title||生日 where rowid = v_rid(i);
v_Count := v_Count + sql%rowcount;
commit;
exit when v_Cur%notfound;
end loop;
commit;
close v_Cur;
dbms_output.put_line(v_Count);
exception
when others then
rollback;
end;

 

 

http://blog.csdn.net/dba_waterbin/article/details/8581448

oracle性能优化

原文:http://www.cnblogs.com/wanghongye/p/5054067.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!