1.SQL语句尽量用大写的
因为oracle总是先解析SQL语句,把小写的字母转换成大写的再执行。
2.使用表的别名
当在SQL语句中多个表关联时, 尽量使用表的别名并把别名前缀于每个列上。这样一来,就可以减少解析的时间并减少那些由列歧义引起的语法错误。
3. 选择最有效率的表名顺序(只在基于规则的优化器中有效)
--No.1 tableA 100w条记录 tableB 1w条记录 执行速度 十秒级
SELECT COUNT(*) FROM tableA,tableB;
--No.2 执行速度百秒级甚至更高
SELECT COUNT(*) FROM tableB,tableA;
上面的结果肯定是No.1比No.2效率更高
SELSET COUNT(1) FROM tableA a,tableB b ,tableC c WHERE a.id=b.id AND a.id=c.id;
上面的sql中tableA 就称为交叉表,根据oracle对From子句从右向左的扫描方式,应该把交叉表放在最末尾,然后才是最小表,所以上面的应该这样写
--tableA a 交叉表 --tabelB b 100w --tableC c 1w
SELECT COUNT(1) FROM tableB b ,tableC c ,tableA a WHERE a.id=b.id