语句没什么可以优化的
两个字段都有索引吧?
增大shared_pool_size试试

解决方案 »

  1.   

    写存储过程吧:create or replace function getColt(colt in varchar2) return varchar2 is
      Result varchar2(100);
    begin
      select t$valu into Result from baan.ttdltc012201 where t$colt = colt and t$cpft = '015';
      return(Result);
    end getColt;select t$valu as 发动机号 , t$colt as 底盘号, getColt(t$colt) as 变速箱号
    from   baan.ttdltc012201 where  t$cpft = '010';这样就没有关联带来的效率问题了。
      

  2.   

    这种存储过程比关联有效吗?主表是100多w行的数据量
    如果是四张表呢(其实是四张表,还要加group by,最后的反应时间,天知道是多少)?
      

  3.   

    有什么好办法能让这四个getcol并行计算吗???、
      

  4.   

    加索引是必要的.然后就是数据分区.
    如果用 Group by 数据又多的话,可以用临时表方式.从而缩细范围加快查询.[推荐] ORACLE SQL性能优化系列  
    http://www.csdn.net/develop/author/netauthor/black_snail/[排序,临时表...]
    http://www.itpub.net/showthread.php?s=&threadid=84823
      

  5.   

    1、以(t$colt,t$cpft)作为联合主键或唯一性索引。
    2、查询尽量采用分页显示,每一次只取需要的数据,如:第n到第m条记录。
      

  6.   

    根据Oracle优化路径
    rule 模式下的规则:1、有两个索引存在的情况下,from后面大表在前。小表(返回记录少的表,不是记录少的表)在最后,作为驱动表,Oracle处理SQL语句是从左到右2、有一个索引,则顺序无关3、都没有索引,则大表应该在后