在Oracle开发过程中,经常遇到多个关联表的问题,在实际使用过程中如何对关联表进行排序,麻烦高手指教下。谢谢!
例如,有表L,C,E,L与E关联,E与C关联
查询语句:
select * from L,C,E where L.L1=E.L1 and C.C1=E.C1  和
Select * from L join E on L.L1=E.L1 join C on C.C1=E.C1
两种写法的查询的效率哪个更高些?
另外,如果3个表的数据量大小差异很大,该怎么写才最高效?

解决方案 »

  1.   

    一般来说没有区别.尤其是采用cbo时,rbo时也许会有差别
      

  2.   

    第二个语句执行效率应该快点!尽量把表数据少的往后排,oracle是从后面的表开始扫描的,不确定哪个语句效率高的时候,看看两条语句的执行计划。
      

  3.   

    http://www.360doc.com/content/10/0908/09/3212287_52030258.shtml
    这篇文章的第4点就是将这个的 
      

  4.   

    这要看你的优化器选择情况,如果是RBO则与顺序有关(小表做基础表放在大表的后面),如果是CBO则于顺序无关,只与表的统计信息有关
      

  5.   

    哦,那如果用RBO的话,采用join方法连接的时候,没法随便排列大小表的的顺序怎么办呢?
      

  6.   

    哦,那如果用RBO的话,采用join方法连接的时候,没法随便排列大小表的的顺序怎么办呢?可以考虑建索引
      

  7.   

    选中sql语句 按F5 可以查看计划