UPDATE [10.20.1.4].PanelZHSW.dbo.MES_MachineSpeed  
    SET MachineStatusCode = @Staus,  
    JORMNum = @_JORNum  
    WHERE  FinishTime IS NULL  
AND PM_MachineID = @MachineID  
    AND StartTime > DATEADD(dd, -1, GETDATE())     
    AND  
    (  
    ISNULL(MachineStatusCode, '') = ''  
    OR ISNULL(MachineStatusCode, '') = @Staus  
    );  这是我的修改语句,要6秒钟才能执行完,
这是表结构这是一张53W条数据的表格,请问大神这个应该如何去优化?

解决方案 »

  1.   

    满足条件需要更新的有53万条数据?同样的条件,进行查询需要多少时间呢,where条件字段建索引了吗?
      

  2.   

    exec sp_help 你的表名看下
      

  3.   

    把 Where 条件里的字段加上索引试试。
      

  4.   

    select * from [10.20.1.4].PanelZHSW.dbo.MES_MachineSpeed  
        WHERE  FinishTime IS NULL  
    AND PM_MachineID = @MachineID  
        AND StartTime > DATEADD(dd, -1, GETDATE())     
        AND  
        (  
        ISNULL(MachineStatusCode, '') = ''  
        OR ISNULL(MachineStatusCode, '') = @Staus  
        );  上面这条语句执行一次需要多长时间?
      

  5.   

     SeepID完全没有意义 删除这一列,然后 将Machine ID 合并 MachineStatusCode 设置成主键