zoukankan      html  css  js  c++  java
  • SQL批量更新 关系表更新

    很多人在做数据的批量更新时..如果更新的内容是从其他表查出来的..很容易这么写..

    UPDATE TABLE1 SET COLUMN1=(SELECT SUM(SOMETHING) FROM TABLE2 WHERE COLUMN2=TABLE1.COLUMN2)

    这样的结构对于一般的小数据更新当然是没问题的..因为体现不出劣势..

    但是到了数据量大了的时候..特别在后边的查询时..量大并且结构复杂的时候..

    那一定会自食恶果..你就等吧..一条T-SQL执行个把小时..甚至计算速度后..发现要执行一天多的时候..就光剩下瞪眼了..

    在这里严重推荐一下这种写法..

    UPDATE TABLE_1 
        SET COL_1=TT2.RESULT_COL_1,COL_2=TT2.RESULT_COL_2
    FROM TABLE1 AS TT1
    INNER JOIN (SELECT RESULT_COL_1,RESULT_COL_2 FROM TABLE_2) AS TT2
    ON TT2.RELATION_COL=TT1.RELATION_COL

    上边的结构在查询上只进行一次..更新进行的是最小次数..就是查询出结果的行数..

    这个结构在一个同事那里..把他原来要进行27个小时的运算..缩短到了2分半钟..威力可见一斑..

  • 相关阅读:
    android kl文件
    ELF文件结构描述
    jquery开头
    win7无声音显示“未插入扬声器或耳机” 怎么解决
    xhtml头文件设置
    break和continue的区别
    php目录函数
    mysql语法
    php中怎么导入自己写的类
    截取文件后缀名
  • 原文地址:https://www.cnblogs.com/iiwen/p/5857291.html
Copyright © 2011-2022 走看看