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

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

  • 相关阅读:
    nginx配置文件详解
    centos 小知识
    nginx 常见问题
    centos7.5 安装nginx
    tomact 配置远程登录
    Centos7 离线安装 mariaDB
    Crontab详细用法-定时任务详解
    新项目push/pull到github
    GIT的基本操作
    hive的安装
  • 原文地址:https://www.cnblogs.com/johnblogs/p/9934433.html
Copyright © 2011-2022 走看看