distinct 没有什么用处(FRA05 like ('43%')  and A12='1' or DWBS='10' 
这个肯定有问题,括号都不对应
 like '43%'

解决方案 »

  1.   

    select distinct a.REPORT_TIME,a.FRA05,b.area_name,from 
    TB_JP_JA2001_DATA a,t_area b where a.FRA05 = b.area_code  and  FRA05 like ('43%')  and A12='1' or DWBS='10' 
    group by a.REPORT_TIME,a.FRA05,b.area_name不好意思,我砍错了一点~~~基本上应该不是sql语句的问题
      

  2.   

    select a.REPORT_TIME,a.FRA05,b.area_name 
    from TB_JP_JA2001_DATA a,t_area b 
    where a.FRA05 = b.area_code  and  FRA05 like '43%'  and A12='1' or DWBS='10' 
    group by a.REPORT_TIME,a.FRA05,b.area_name在sql*plus里面试一下,看有没有问题
      

  3.   

    表的结构变了会抱错的
    我这个是出奇的慢,原本零点几秒可以出结果的,现在要到n分钟后都没有动静,有时候会报
    temp出错,一看,20G的temp表都满了,而这条sql语句不可能造成这种结果,痛苦ing
      

  4.   

    可能是a.fra05或b.area_code列的索引丢了,导致对两表的sort merge,这样会严重影响效率.
      

  5.   

    SQL语句没有变而又不能执行,那应该是数据库结构或者什么变化了
      

  6.   

    用sql expert for oracle分析一下sql语句
      

  7.   

    泥的TEMP表空间满了,这句查询当然要慢了,因为GROUP BY是要排序的,要占用TEMP表空间,泥将TEMP表空间扩一下再试试看~
      

  8.   

    应该是你的数据发生变化了,原来满足where条件的集合很小而现在很大,再进行distinct和group by这样的操作,自然很慢了。