如何提高Oracle Update的性能?

发布于 2022-08-27 13:10:40 字数 485 浏览 15 评论 0

如何提高Oracle Update的性能?特别是在多表关联的情况下,如果提高其性能?

另:

`update 表a set a.字段1 = (select b.字段1 from 表b where a.字段2=b.字段2 and a.字段3=b.字段3) where exists(select 1 from 表b where a.字段2=b.字段2 and a.字段3=b.字段3)` 

类似于这样的情况下,如果我事先将需要一一判断的字段字段2和字段3用字符串拼接的方法,另存放一个字段“字段2字段3”(这个可以在代码中处理),而使用

`update 表a set a.字段1 = (select b.字段1 from 表b where a.字段2字段3=b.字段2字段3) where exists(select 1 from 表b where a.字段2字段3=b.字段2字段3 )`

会不会快一点?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

毁我热情 2022-09-03 13:10:40

这个太天真了.
1. 目测此sql里的 where 完全没有必要.
2. 效率取决于
a. 是否可以用到索引, 这里可以选择在 字段2, 字段3上建单独索引或联合索引, 看具体效果.;
b. 如果不能用索引, 全表扫描的效率. 这取决与磁盘效率, 判断 "a.字段2=b.字段2 and a.字段3=b.字段3" 或是 "a.字段2字段3=b.字段2字段3" 基本不会有区别.

坦白说, 没看出"另存放一个字段“字段2字段3”" 会有什么好处.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文