关于Oracle并行插入性能

前端之家收集整理的这篇文章主要介绍了关于Oracle并行插入性能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个像这样的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,例如,如果没有可用的并行服务器,那么追加提示可以产生很大的不同.

猜你在找的Oracle相关文章