update字段执行效率慢的解决办法

时间:2024-04-01 20:09:13

update字段时,执行效率慢可以换成下边这种方式:

解决办法:

merge into  tableA using (括号里面是你需要的字段,来自于其它表的数据 比如 tableB)  on(tableA  跟tableB 的关联条件)

when matched then update set tableA.id=tableB.id ;

这是句式,下边用案列来证明及 这个句式的具体使用方法。    

首先,我随意取了一组需要的数,放入了临时表EXP_phone中

update字段执行效率慢的解决办法

然后写了一组update语句,代码粘贴不了,我就直接甩图了,各位哥哥姐姐凑合一下吧。么么么么么哒。

update字段执行效率慢的解决办法

20000000多万的耗费,时间很久,我没有执行看到底有多久,等了好几分钟没有执行完,感觉我是等不了这么长时间的,

而且写在存过里面,时间太久效率太低也是不行的。所以我就想了其他的办法。同事说可以用merge into ,于是我试了一下。

直接甩代码及耗费截图

update字段执行效率慢的解决办法

从这张图上可以看出来,耗费变成了4000+ 执行效率直接就变成了不到2S就执行完了,而且我在临时表建了个索引,也走了索引,merge into 明显提升了update的效率,

update phone时是全表检索一遍,一组一组的set,而merge into 是根据on 后边的条件将全部符合的数据提取出来,一块set 进需要update的表里,所以效率会快一点。

大概就这个样子了,若有不对之处,希望能得到大佬的指点。