日期:2014-05-17  浏览次数:20702 次

谈谈提高oralce执行效率的问题
本帖最后由 leetan 于 2013-03-18 13:45:30 编辑
最近去面试,面试官问到,怎么才能提高oralce的执行效率,因为数据量都很大,大概几十万条,几百万条左右,而且又是设计到多表的查询。请各位大牛畅所欲言,也不限于查询,其他的操作也有。
我先说一个,给一些字段建立索引。

------解决方案--------------------
给关键字段加索引是常用的办法,索引类型要根据业务类型来选择,这个也很重要。另外还有大表的分区管理等
------解决方案--------------------
如果只讲理论上的优化,像分区表、索引(位图,BTree等)等,有的时候临时表也是很普遍,我就经常搞。
实际一点话,就看看执行计划,尽量让SQL先把数据量小的数据拉出来,in和exists也可以引起很大的效率问题。
------解决方案--------------------
说到底、还是业务的优化
------解决方案--------------------
最有效的是重构语句,然后必要字段建索引,这么小的数据量不需要分区也行。
------解决方案--------------------
看看oracle的一些hint,也是可以提高效率的
------解决方案--------------------
适当的字段冗余。
------解决方案--------------------
评估表之间的业务逻辑,如果都是小表,考虑把小表合并