频道栏目
读书频道 > 数据库 > Oracle > 收获,不止Oracle
2.3.2.5 集合写法,飞机速度
2013-04-17 09:20:19     我来说两句
收藏   我要投稿

本文所属图书 > 收获,不止Oracle

在这本书里读者将会跟随作者一同对Oracle数据库的相关知识进行梳理,最终共同提炼出必须最先掌握的那部分知识,无论你是数据库开发、管理、优化、设计人员,还是从事Java、C的开发人员。接下来作者再将这部分知识...  立即去当当网订购

“还能更快吗?”梁老师没完没了啊。

“不可能!”这下同学肆无忌惮地大笑了,他们知道梁老师这回肯定是故意的了。

“不可能?看来你们又认为老师在开玩笑了,如果老师能让插入该表的动作更快,你们请老师吃饭,否则老师请你们吃饭?”

“没问题!”同学们应答得好干脆啊,他们其实心里也知道,这请客的说法一定是开玩笑,课堂的气氛被调到了最高潮了。

“好吧,同学们,大家看这条SQL语句的写法,如下:

insert into t select rownum from dual connect by level<=100000;

表示我从1到10万依次插入到t表中,完全满足刚才的需求,不过这种写法大家可能略感陌生,结果却是对的。现在我们执行如下:
SQL> drop table t purge;
表已删除。
SQL> create table t ( x int );
表已创建。
SQL> alter system flush shared_pool;
系统已更改。
SQL> set timing on
SQL> insert into t select rownum from dual connect by level<=100000;
已创建100000行。
已用时间:  00: 00: 00.25
SQL> commit;
提交完成。
已用时间:  00: 00: 00.00
SQL> select count(*) from t;
  COUNT(*)
-----------------
  100000

脚本2-39  第4次用集合写法后0.22秒完成,动车变飞机

大家认真看看完成的时间吧。”梁老师得意地回过头望着大家。

“0.25秒!”这次不再是晶晶一人的声音了,是全部同学一起喊起来了。

“每秒插入40万条,太快了吧!”小莲再次喊出声来。

“为什么会快这么多呢?其实是因为原先的过程变成了SQL,一条一条插入的语句变成了一个集合的概念,变成了一整批地写进DATA BUFFER区里,好比你要运砖头到目的地,一种是一块砖头拿到目的地,再返回拿第二块,直到拿完全部。而另一种是全部放在板车一起推至目的地,只是这里的目的地是DATA BUFFER区而已。

听明白了吗?”

“听明白了!”大家都很激动,梁老师真像一个魔术师。

“听明白就好,现在你们该好好想想请老师晚上去哪里吃饭了。”

同学们都乐了,大家心里都知道梁老师是在开玩笑。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.3.2.4 批量提交,动车速度
下一篇:2.3.2.6 直接路径,火箭速度
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站