【发布时间】:2011-05-17 19:16:27
【问题描述】:
在我的应用程序中,我必须添加许多记录。我正在使用以下构造:
INSERT /*+ append parallel(t1, 4) parallel(t2, 4) */ ALL
INTO t1 (col1, col2, col3) VALUES ('val1_1', 'val1_2', 'val1_3')
INTO t2 (col1, col2, col3) VALUES ('val2_1', 'val2_2', 'val2_3')
INTO t2 (col1, col2, col3) VALUES ('val3_1', 'val3_2', 'val3_3')
.
.
.
SELECT 1 FROM DUAL;
我也在使用 APPEND 和 PARALLEL 提示。请注意,我在两个不同的表中插入数据。似乎并行被忽略了(DBA 告诉我)。那么我怎么知道它是否被使用呢?是否可以在这样的构造中使用 PARALLEL 提示?有效吗?
【问题讨论】:
-
你的陈述中的提示在哪里?这实际上是您使用的语句吗?什么,你到底想并行做什么?作为多表插入的一部分,您是否有实际查询,或者使用 DUAL 只是对您正在做的事情的粗略简化?你在使用 PARALLEL DML 吗?
-
我添加了提示。我正在尝试使用 Direct Path 并利用并行性通过单个命令添加许多记录。问题是插入没有利用并行性。我想知道为什么以及如何检查它是否被使用。
-
多少是“许多记录”,几十个还是几百万个?
-
每条语句大约 30 条记录。
-
所有答案都非常有帮助。不幸的是,我不能全选。非常感谢。
标签: oracle query-hints