存储过程中使用显式游标的思考

liubin041102 2013-02-28 04:58:05
隐式游标使用一般是for rec in (select * from xxxx),这种方式广泛被认可。
而显示游标(open - close)的使用有些争议,效率不高,内存泄露等问题。
1.效率问题
a.如果数据量不大,并且一个sql能完成的功能,是没必要使用游标
b.数据量巨大,即使简单的update也会卡到死,我会考虑使用游标循环处理(包括隐式和显式游标);又引出一个话题,如果对巨量数据做更新做优化?使用批量更新,循环把数据放到数组里,然后每1万条update一次?循环update,每一万条commit一次?创建临时表,给每行编行号,然后 使用行号做限制条件一万条处理一次?如果有好的建议请不要吝啬
例如:如果表t1有5千万条数据,更新到表t2中,对t1来讲是每条数据都需要处理,怎么办?

2.内存问题
a.open 的游标,使用之后close,这样还有内存泄露么?我不知道,坐等回复
b.有人说使用游标之后数据库变慢了,内存占用的多了,这个怎么解释
...全文
564 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liubin041102 2013-03-03
  • 打赏
  • 举报
回复
谢过,\(^o^)/~
陈字文 2013-03-01
  • 打赏
  • 举报
回复
引用 2 楼 liubin041102 的回复:
木有人?-------
恩...csdn Oracle坛子上面现在人气比较冷清,大牛都很少来了,看ITPUB的讨论吧.
liubin041102 2013-03-01
  • 打赏
  • 举报
回复
木有人?-------
liubin041102 2013-02-28
  • 打赏
  • 举报
回复
很少上csdn,心血来潮 发个帖子,欢迎抛石头,另求 oracle 开发讨论 技术 群

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧