外连接是会慢很多,至于究竟慢多少,取决于记录的多少、在表之间的分布象你这样选取所有的字段、而且没有任何where条件的语句实际中并不常用,说明不了什么问题

解决方案 »

  1.   

    具体说一下两表中的数据都是什么,查询出的记录条数都是多少。因为:
    假如table1中有1000000条记录,table2中有1000000条记录。但如果两表
    中coll没有交集,则语句1的结果为空,如果你在表中的coll字段建了索引,速度应该很快。但语句2返回了1000000条记录。
    我想在这中条件下,慢40倍应该很正常。
      

  2.   

    table1 table2 的col1都建了index
    table1的col1和table2的col1间是包含关系。
      

  3.   

    同意: shipatrioc(风吹雨打哗啦啦)
      

  4.   

    KingSunSha(弱水三千)顺便说一下:
        
    select m.*, n.* from table1 m,table2 n where m.col1=n.col1;
    (xxxx rows selected in 1.000 seconds)select m.*, n.* from table1 m,table2 n where m.col1=n.col1(+);
    (xxxx rows selected in 40.000 seconds)的查询结果是一样的!!
      

  5.   

    table1的col1和table2的col1间是包含关系。但测试时,我建的表:
    table1的col1和table2的col1间是等于关系。
      

  6.   

    查询结果一样不说明数据执行的查询路径或者连接路径相同,在INNER JOIN模式下,ORACLE不需要考虑M表中存在而在N中不存在的纪录(即左连接),效率肯定要比后者高。