隐式游标使用一般是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.有人说使用游标之后数据库变慢了,内存占用的多了,这个怎么解释
数据库游标优化大数据处理