加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

关于Oracle并行插入性能

发布时间:2021-05-14 22:34:50 所属栏目:站长百科 来源:网络整理
导读:我有一个像这样的SQL: Insert into ASelect * from B; 现在我希望它并行运行.我的问题是并行插入或选择或两者?请参阅以下sqls,您能告诉我哪一个是正确的,哪个是最佳的.我没有dba权限,所以我无法检查其执行计划. 1)从B中插入/ *并行(A 6)* /到A select *中;

我有一个像这样的SQL:

Insert into A
Select * from B;

现在我希望它并行运行.我的问题是并行插入或选择或两者?请参阅以下sqls,您能告诉我哪一个是正确的,哪个是最佳的.我没有dba权限,所以我无法检查其执行计划.

1)从B中插入/ *并行(A 6)* /到A select *中;

2)从B插入A select / * parallel(B 6)* / *;

3)从B中插入/ *并行(A 6)* /到A select / * parallel(B 6)* / *;

谢谢!

并行化INSERT和SELECT是最快的.

(如果你有足够多的数据,你有一个不错的服务器,一切都是明智的配置,等等)

你肯定想自己测试一下,特别是找到最佳的并行度.关于Oracle并行执行有很多神话,甚至手册有时也是horribly wrong.

在11gR2上,我建议你像这样运行你的语句:

alter session enable parallel dml;
insert /*+ append parallel(6) */ into A select * from B;

>您始终要首先启用并行dml.
> parallel(6)使用statement-level parallelism,而不是对象级并行.这是一个11gR2功能,允许您轻松地并行运行所有内容,而不必担心对象别名或访问方法.对于10G,您必须使用多个提示.>通常,附加提示不是必需的.如果您的DML并行运行,它将自动使用直接路径插入.但是,如果您的语句降级为serial,例如,如果没有可用的并行服务器,那么追加提示可以产生很大的不同.

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读