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

Oracle sql性能优化定理
1、选择最有效率的表名顺序:ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。测试通过~
2、 WHERE子句中的连接顺序
性能优化 oracle sql

------解决方案--------------------
你的第1条应该在10g之前是适用的吧
------解决方案--------------------
顺序什么的确实重要

------解决方案--------------------
2、 WHERE子句中的连接顺序
越有效筛选数据的条件放在越右边,连接表条件放在最左边
------解决方案--------------------
引用:
Quote: 引用:

你的第1条应该在10g之前是适用的吧
我不知道啊,我现在用的就是10g,测试确实会快~


前面我说的可能不太准确,我刚才测试了一下,11g下from 后表名的顺便不会影响查询的速度
贴出执行计划如下:

select count(1) from a;

已用时间:  00: 00: 00.09

执行计划
----------------------------------------------------------                      
Plan hash value: 3918351354                                                     
                                                                                
-------------------------------------------------------------------             

------解决方案--------------------
 Id  
------解决方案--------------------
 Operation          
------解决方案--------------------
 Name 
------解决方案--------------------
 Rows  
------解决方案--------------------
 Cost (%CPU)
------解决方案--------------------
 Time     
------解决方案--------------------
             
-------------------------------------------------------------------             

------解决方案--------------------
   0 
------解决方案--------------------
 SELECT STATEMENT   
------解决方案--------------------
      
------解决方案-------------------