ORACLE 处理大量数据应该注意什么?
絮絮 2010-09-16 03:25:00 实在受不了这样的速度了,今个得说说了,现在有几张级联关系的表,数据很大,有几百万条吧,简单的查询还可以,当用到分页查询的时候,速度慢的要死,大概半分钟,主要是由于,我的查询是在视图中查询的,而且这张视图是复杂的查询,分页的查询的sql语句还要嵌套3次,所以,速度一降再降。另外,在对一张单表(200万条)进行批量更新(更新1万条),速度更是慢,大概用了20分钟,人都等死了,看了几篇小说,一看出错了,还要重新更新,晕……
哈哈,悲剧就这样发生了,想必,这种事情没在你身上发生吧,遇到这样的问题就像踩了狗屎一样幸运,接下来,在网上查了很多如何提高oracle查询和更新效率的方法,一方面,自己分享一下自己的经验,另外,希望您给你宝贵意见或建议,OK!
查询:首先我的查询是从视图中查询的,视图的结构也比较复杂,所以,此视图废弃,选择物化视图,当然,以前没用过,结果太不可思议了,速度提高了很多,本来20s,现在只用0.几秒搞定,呵呵,如获至宝……
更新:百万级的单表数据进行更新(更新1万条),真的委屈CPU了,20分钟才完成此项任务,真想开了它,怎么办呢,想办法。我的批量更新是在事务中做的,带条件的更新某字段的值(Excel读取的),想到每条数据更新时首先要找到这条数据,所有,如果查询时间短了,效率肯定会提高,怎样提高单表查询呢,幸运的我终于想到了索引,加上索引后,继续导入,哈哈,这下了开了花,20分钟缩短到了2分钟,帅气……
当然,oracle定会更快、更强,只是本人水平有限而已,不然,几十万的ORACLE真要打水漂了……
希望各位留在你们的足迹,thanks