现在我发现,其实语句很快,只是加上order by date1 desc 后变得巨慢。帮忙

解决方案 »

  1.   

    不知道你不加order by 的时候可以查询出多少记录.要用多少时间?  加order by后是肯定会变慢的,记录越多就会越明显.
      

  2.   

    t2.gxren IN ('张华')
    用IN会比较慢,应该改成:
    t2.gxren = ('张华')
      

  3.   

    fosking(寒羽良天):t2.gxren IN ('张华')这个in里面的参数大于等于一个,所以只能用in
    了。
    dinya2003(OK) :就是order by把整个效率都降低了。有什么好办法没有?
      

  4.   

    t1.date1 加索引了没有?
    如果没有加索引,排序当然慢了
      

  5.   

    date1加了一个降序索引,可是还是慢
      

  6.   

    加个/*+use_nl(t1,t2)*/试试,
    再有,就算加索引也应该这样加啊:在t2.gxren 上加,在t1.zybm上加。
    再有,是 t2.gxren in(..)返回的记录多,还是t1的全量记录多,应该用记录数少的表做驱动表。
    ---点评完毕-----
    (以上论点纯属个人意见,如有言中,纯属实力。)
      

  7.   

    我在实际应用中碰见加ORDER BY慢很多的时候,都做张临时中间表
      

  8.   

    这两个表里是否有很多大对象字段,比如blob, clob字段,oracle在处理带有blob字段的表时,服务器的开销很大.我估计里面多半有blob字段,要是这样的话,可以把两张表单独存储在一个新建的表空间里,这样会加快查询速度.