oracle 动态执行的sql语句中, insert into 中用多个union all 连接出来的语句效率高, 还是把union all分成多个insert into 效率高呢, 为什么?

wscft 2009-01-14 06:02:41
如题
...全文
2144 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
viscount 2009-01-15
  • 打赏
  • 举报
回复
个人看法 分开比较好
如果 union all 的数据量很大的话,
可能会出现04030的错。
wscft 2009-01-14
  • 打赏
  • 举报
回复
用的是oracle 9i,是这样的,从同一个表中根据不同的条件关系,把八个SELECT出来的结果集UNION ALL 后用INSERT 语句插入一个表中后commit提交,
与分成八个INSERT INTO 语句后并分别提交时,执行的效率如何?

与SELECT 直接出来的结果集的数据量的大小是否有关系?

对于不同的数据库系统有什么区别呢,没有找到令人信服的说法,谁有相关的该方面的技术文档,给个链接看看, 谢谢
wind__dance 2009-01-14
  • 打赏
  • 举报
回复
区别应该不大,你可能考虑事务对插入的影响吧?一次提交的话和一个事务区别不大,因为它不一直写重做日志
dawugui 2009-01-14
  • 打赏
  • 举报
回复
如果都是最后才提交,需要的时间基本一样.

如果没insert就提交一次,则是合在一起的时间少.
Andy__Huang 2009-01-14
  • 打赏
  • 举报
回复
一样的,因为insert into 语句数量一样多

当然,如果你一次性提交和每insert一句就提交一次,效果是不一样的
一次性提交效果更好

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧