建个索引gs_ModelInstance(PK,ModelPlan_ID,History)测试下

解决方案 »

  1.   

    happyflystone 
    无枪狙击手 
    等 级:
     发表于:2008-01-28 11:36:222楼 得分:0 
    同情 
    太长 
     ----------------
    枪手,这个不长噢。你也忒没耐心了吧?嘿嘿```
      

  2.   

    数据量大的化就是select * from table也会很慢呀
      

  3.   

    最好查询条件不要用到几个用了case when的字段,否则对性能影响比较大
      

  4.   

    select   *   from   table,2000000条数据,33秒。
      

  5.   

    我直接查询gs_ModelInstance(流程审核记录表)表都要4、5秒。。
    现在加了gs_ModelInstance(流程审核记录表)表的ModelPlan_ID字段加了索引,是14秒。。
    可是还是达不到要求。太慢了
      

  6.   

    需要组合索引gs_ModelInstance(PK,ModelPlan_ID,History)的你的查询怎么查的,返回多少纪录?
      

  7.   

    把case 那儿先不转汉字,留前台程序转
      

  8.   

    直接对视图进行查询:select * from vc01
    10W条记录。
    这样需要14秒。
      

  9.   

    你实际用应该不会
    select   *   from   vc01 

    应该考虑和测试程序中实际用的情况
      

  10.   

    你实际用应该不会 
    select       *       from       vc01   
    的 
    应该考虑和测试程序中实际用的情况 
    ------------------------------
    实际应用肯定是在查询这个视图的时候加了几个过滤条件。。
    直接查询这个视图时间如果减少了。实际应用时自然也会快一些。
      

  11.   

    happyflystone 
    无枪狙击手 
    等 级:
     发表于:2008-01-28 11:57:1812楼 得分:0 
    把case   那儿先不转汉字,留前台程序转 
     
    -----------------------------------
    我把那几个case字段注释后,再运行查询,时间上毫无区别噢。。
    这说明这几个字段并无太大影响了。。
      

  12.   

    你有三个选择条件     A.ZA0100 = B.PK
        AND A.PLANID = B.ModelPlan_ID        AND B.History = 1 根据这三条件 建个建个联合索引吧index(za0100,planid)
    index(pk,modelplan_id,histroy)然后用到CASE 的时候能在前台处理就在前台处理