Oracle SQL性能优化调整的几点基础事项

2014-11-24 18:32:07 · 作者: · 浏览: 0

1. 选择最有效率的表名顺序


SQL的解析器按照从右到左的顺序处理FROM子句中的表名, FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。


例如:


表 TAB1 16,384条记录 表 TAB2 1条记录


选择TAB2作为基础表 (最好的方法):


select count(*) from tab1,tab2 ----执行时间0.96秒


选择TAB1作为基础表 (不佳的方法):


select count(*) from tab2,tab1 ----执行时间26.09秒


2. 3个以上的表连接查询


如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表。


例如:


EMP表描述了LOCATION表和CATEGORY表的交集


SELECT * FROM LOCATION L , CATEGORY C, EMP E


WHERE E.EMP_NO BETWEEN 1000 AND 2000


AND E.CAT_NO = C.CAT_NO


AND E.LOCN = L.LOCN