因为项目中的几个SQL比较执行速度比较慢,所以最近一直在优化这几个SQL,在优化的过程中,还是挺有意思,因为每进
行一点改进,可能对执行效率都有一点的改善。在这个方面,也总结了一些小小的经验,这些经验都是建立在ORCLE系统之上
的:
1、在做联合查询时,注意对表中的数据进行预估,然后决定查询时表的先后顺序。
2、根据数据库的的解析规则来决定查询条件的先后顺序。这里有一个原则是尽量一开始就过滤到某表的大量数据。
2、在做查询时最好是直接对表操作,所以如果表与视图进行联合查询,一般把视图折开。
4、在执行查询时,尽量减少对表的访问次数,例如在执行一次查询,需要多次关联代码表,这种情况就可以考虑怎么尽量减
少查询的次数。
5、对于Union 与 Union ALL的使用,如果不需要排重,那就尽量使用UNION ALL,因为UNION有排重功能,所以效率相对
要低一些。
6、对于用IN的查询子句,考虑用EXISts来代替
7、子查询中尽量不要用排序等语句。
以上都是针对在一定ORACLE配置条件下,也不涉及到ORACLE本身进行调优。