多表关联占用的临时表空间比较大,不过才2万的数据,影响不大的,除非表空间定义的很小
一次几个LEFT JOIN可以试试分解成一次1、2个LEFT JOIN,分几次执行

解决方案 »

  1.   

     10 | TABLE ACCESS FULL | PAMPAYER | 3812 |
    搞下索引吧
      

  2.   

    多谢帮助!我也是是不是缓存的问题,但是效率差距有这么大吗?会不会数据库设置有些问题呢?
    还有你的意思是分成多个SQL 执行吗?
      

  3.   

    第一个慢的地方,是你的排序!
    左连接关联很多,速度肯定不快,但不至于慢到你的这种境界!
    因为你的左连接并没有浪费多少时间。浪费时间的是你的排序和你的条件吧建议:
    1,多表关联,数据量大的表放到前面,数据聊越小的表越放到where后面去,能提高一定速度。
    2,排序问题,非必要不排序,如果要排序要在数据量最小的情况下排序。
    2,你建的索引好像有问题啊??
      

  4.   

    谢谢,排序的那个entryseq字段是主键也会很有影响吗?那我把它去掉试试
    还有索引有什么问题啊?
      

  5.   

    这肯定是缓存的问题呀,第一次查询时间很长,马上查询第二次,时间是第一次的1/10,很正常呀。
    第一:数据缓存了
    第二:SQL执行计划缓存了,第二次执行不要再重新分析执行计划
      

  6.   

    这个设计oracle 内存结构,里面有个共享池。lz 去系统学习下吧,比在这问好很多
      

  7.   

    好吧,oralce的设计以后我回去看的,我现在关心的是SQL这么慢到底是什么原因
      

  8.   

    left join 的效率连多张表差