你的做法已经很好了:view(c)放在最后面可以大大提高速度。

解决方案 »

  1.   

    子查询,结合,view 。在什么条件下用什么效率最好?谁能讲一讲。还有上面的能写成一句sql而且效率最高吗?
      

  2.   

    如果是大数据量的话,用临时表是个好办法,ORA9的话还有物理视图,总的思路时让关联的表中的数据越来越少!
      

  3.   

    view 的效率是很低的,建议不要这样使用。(如果你要很高的效率的话)先把最大的表(a,b,c)过滤,之后再做连接,速度肯定快。(写代码有些麻烦)
      

  4.   

    子查询不宜超过三层!(当然要看数据量而言)你可以去看看ORACLE的执行计划!
      

  5.   

    这样做是不是最好的?
    在A上做一个view, 由于动态条件在A上,这样view(A)
    只剩下几十条数据,然后再和b,view(C),d,e结合。
    这样一共要3条语句。
    是不是这样最快?
      

  6.   

    我同意小数点的建议:
    1.你可以把b,c表查询结果放在一中间表中,然后根据where条件建立索引.2.可以把视图的数据放在中间表中,根据条件建立索引。3.d,e表也可以考虑把查询结果放在临时表中,然后建立索引。4.最后把几个中间表关联我想速度可能会快一点