你需要COMMIT吗?在 INSERT /*+ 后追加 */

问题描述 投票:0回答:1

我在每个 INSERT 语句之后都有 COMMIT。

我想知道在

COMMIT;
之后我是否需要
INSERT  /*+ append */
...

oracle commit sql-insert
1个回答
0
投票

您可能 不想 想在每个

INSERT
之后提交,但您可能 do 想在每个
INSERT /*+ APPEND */
之后提交。

对于传统的

INSERT
,您可能只想在应用程序的逻辑事务完成时提交。在每次常规插入后不必要地提交会导致性能和原子性问题。

对于直接路径

INSERT /*+ APPEND */
,您可能需要尽快提交。直接路径写入以额外锁定(和其他问题)为代价提高性能。额外的锁定会阻止每个会话,甚至是当前会话,甚至在提交事务之前都无法读取对象。为了避免错误
ORA-12838: cannot read/modify an object after modifying it in parallel
,程序通常在每个
INSERT /*+ APPEND */
之后提交。

© www.soinside.com 2019 - 2024. All rights reserved.