select bmmc,ysymc,g_gsmc,g_zq,sum(isnull(zcsr,0)) as zcsr,sum(isnull(sysr,0)) as sysr,count(g_id) as ps from v_zcxx_zqyjb where syzq<0 and sysr<>0 and g_ssbm='1002' group by bmmc,ysymc,g_gsmc,g_zq就这么个sql语句,可能大家会和我说,你是在调用视图v_zcxx_zqyjb,才会慢,并且也不妨告诉大家,这个v_zcxx_zqyjb里面的语句,还有视图(v_fpxx)的,但是这个sql语句,如果没有红色的g_ssbm='1002',这个条件,速度很快,一下子就出来了,数据量是1400多条,但是加了这条件,虽然数据量只有8条,但是速度很慢,要1分多钟,并且其他的group by 后面的关键字,做搜索条件,速度都是慢的,感觉是索引不起了任何效果,想问一下大家,有没有什么办法可以解决,希望高手指点,谢谢

解决方案 »

  1.   

    and g_ssbm='1002'确认是字符型的就加个索引试试!
      

  2.   

    这个g_ssbm='1002' 肯定和你那个视图中的视图有关,
    去掉那个视图中的视图,
    把需要引用的字段,直接写在本视图
      

  3.   

    g_ssbm,已经加了索引,另外,社图嵌视图,也是没有办法的事,就事论事来讲,我现在碰到的问题,是加了条件速度变慢,没有条件,速度还是很快的,尽管是视图嵌视图
      

  4.   

    g_ssbm,已经加了索引,另外,社图嵌视图,也是没有办法的事,就事论事来讲,我现在碰到的问题,是加了条件速度变慢,没有条件,速度还是很快的,尽管是视图嵌视图
    答:我上次在客户那里也是你这个情况,就是g_ssbm和视图所嵌的视图有关
    后来我把这个视图所嵌的视图中的语句直接写在当前视图后,问题就解决了