Oracle 如何处理针对一张表的多个并发 INSERT

Dus*_*tin 8 oracle insert

我试图更深入地了解 Oracle 11g。我的问题很简单:Oracle 如何处理试图同时将记录插入单个表的两个会话。

例如,INSERT A 在下午 1:00 针对表 1 运行。完成需要 5 分钟。INSERT B 在下午 1:02 针对表 1 执行。完成需要 1 分钟。

会发生什么?在 INSERT A 完成后,Oracle 会排队 INSERT B 吗?INSERT B 会与 INSERT A 同时运行吗?

谢谢!

REW*_*REW 4

插入不会相互影响,除非它们与唯一或主键约束发生冲突。他们应该是独立的。我相信这个并发问题是Oracle的序列是一个单独的对象(缓存、代理PK生成与插入分离)的原因之一。

在这方面,他们在会话中看到的未提交表上进行操作。下面的 stackoverflow 帖子中描述了此行为。

/sf/ask/223649961/