1、加索引:
tblExlTempYear(GDXM,TXDZ)
tblExlTempMonth (GDXM,TXDZ)2、删除误用数据3、转移过是数据4、加服务器内存,升级服务器5、升级网络系统6、别无他法(玩笑)

解决方案 »

  1.   

    tblExlTempMonth.GDXM
    tblExlTempYear.GDXM 
    tblExlTempMonth.TXDZ
    tblExlTempYear.TXDZ
    加索引
      

  2.   

    7、改语句:UPDATE tblExlTempYear 
    SET tblExlTempYear.GDQC = tblExlTempMonth.GDQC 
    FROM tblExlTempYear,tblExlTempMonth 
    where tblExlTempMonth.GDXM=tblExlTempYear.GDXM and tblExlTempMonth.TXDZ=tblExlTempYear.TXDZ
    and ...
      

  3.   

    除了加索引之外别无他法了吗?
    语句上有没有还可以优化的办法?
    谁能给些SQL语句优化的具体例子!!!
      

  4.   

    1、加索引 ?   Please correct me if I am wrong : Query on index column is faster general but Update on Index will be slow ( sometime very slow in Oracle ) I am not sure how SQL Server will do in this case .
      

  5.   

    没余地了UPDATE tblExlTempYear 
    SET GDQC = tblExlTempMonth.GDQC 
    FROM tblExlTempMonth 
    where tblExlTempMonth.GDXM=tblExlTempYear.GDXM 
          and tblExlTempMonth.TXDZ=tblExlTempYear.TXDZ
      

  6.   

    to:楼主
    要是提高1m,你不是要送600分么?不过题目不是很清除,最好将表结构也贴出来。
      

  7.   

    实在这句没的改了也想多知道一点数据库优化,特别针对SQL语句优化的东西
      

  8.   

    UPDATE tblExlTempYear 
    SET tblExlTempYear.GDQC = tblExlTempMonth.GDQC 
    FROM tblExlTempMonth 
    where tblExlTempMonth.GDXM=tblExlTempYear.GDXM and tblExlTempMonth.TXDZ=tblExlTempYear.TXDZ这样写呢?
      

  9.   

    两个表间的匹配关系也要考虑吧!
    根据搂主的联接条件,首先要考虑的是否1:1匹配还是n:1匹配?(肯定不会是
    1:n或者n:n匹配,那样要出错了)。然后要考虑两个表的各自输入范围,比如左边的表命中的是10万条,而右边的表命中100条,则搂主使用的联接方式有欠合理,执行起来较慢。
      

  10.   

    UPDATE tblExlTempYear 
    SET tblExlTempYear.GDQC = tblExlTempMonth.GDQC FROM tblExlTempMonth a
    ----^^少了一个给一分!哈哈。。
    where a.GDXM=tblExlTempYear.GDXM and a.TXDZ=tblExlTempYear.TXDZ给tblExlTempYear表的GDXM和TXDZ加非簇索引
    给tblExlTempMonth表的GDXM和TXDZ加非簇索引
      

  11.   

    没有条件限制确实很难保证更新的时间楼主不说明,真的不像再说还时说完了算了,忙自己的去最后一法:
    触发器
    楼主的问题实际上是保持两表的数据一致,可以用触发器来分散性能压力
    在tblExlTempMonth表建立修改触发器(必要的可以加插入触发器),判断修改GDQC字段的时候,修改tblExlTempYear的GDQC字段create trigger tr_tblExlTempMonth_update
    on tblExlTempMonth
    for update
    as
    if update (GDQC)
       UPDATE tblExlTempYear 
       SET tblExlTempYear.GDQC = i.GDQC 
       FROM tblExlTempYear ,inserted i
       where i.GDXM=tblExlTempYear.GDXM and i.TXDZ=tblExlTempYear.TXDZgo
      

  12.   

    楼上都是高手,相信他们没错
    以下只是一人小技
    use Udatebase
    go
    create index indexY on tblExlTempYear(GDXM,TXDZ)
    create index indexM on tblExlTempMonth(GDXM,TXDZ)
    go
    --------------------
    UPDATE tblExlTempYear 
    SET tblExlTempYear.GDQC = tblExlTempMonth.GDQC 
    FROM tblExlTempYear (index indexY),tblExlTempMonth (index indexM)
    where tblExlTempMonth.GDXM=tblExlTempYear.GDXM and tblExlTempMonth.TXDZ=tblExlTempYear.TXDZ
      

  13.   

    楼主呢?我计算了一下,用触发器就不必执行这个语句,也就是优化到0了,提高了1分51秒,搂主应该给我(60+51)*10=1110分,哈哈,发达了
    不过触发器还需要考虑tblExlTempYear表修改GDXM、TXDZ两个字段的情况,tblExlTempYear表也需要修改触发器