场景描述:
UPDATE TABLE_A SET TABLE_A.VALUE =(SELECT TABLE_B.VALUE FROM TABLE_B WHERE TABLE_B.NAME=TABLE_A.NAME);
解决方案:
MERGE INTO TABLE_A A USING TABLE_B B ON (A.NAME = B.NAME) WHEN MATCHED THEN UPDATE A.VALUE = B.VALUE;
原理:
update采用的类似nested loop的方式,对更新的每一行,都会对查询的表扫描一次;
merge into这里选择的是hash join,则针对每张表都是做了一次 full table scan,对每张表都只是扫描一次。
最后
以上就是英勇小兔子最近收集整理的关于UPDATE SELECT 操作导致的性能问题的全部内容,更多相关UPDATE 内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复