Oracle直接路径插入问题

Oracle直接路径插入问题,oracle,oracle11g,Oracle,Oracle11g,我有一个被截断并被插入(追加)的表。在这个加载过程中(150分钟),我有另一个查询(当然是另一个会话)使用并读取这个表。我看到从这个表读取的查询也被延迟或等待类似的时间(150分钟) 现在我的问题是:当直接路径加载发生时,实际会话之外的会话读取以前的版本,但它仍然可以读取。在这种情况下,表被截断。上面写着什么?为什么要等待?有一个名为gv$session的系统视图,列出了连接到数据库的所有会话。其中一列是事件,它指示会话正在等待什么(如果有)。在查询运行时,检查该会话的事件列的值。这将准确地告诉

我有一个被截断并被插入(追加)的表。在这个加载过程中(150分钟),我有另一个查询(当然是另一个会话)使用并读取这个表。我看到从这个表读取的查询也被延迟或等待类似的时间(150分钟)


现在我的问题是:当直接路径加载发生时,实际会话之外的会话读取以前的版本,但它仍然可以读取。在这种情况下,表被截断。上面写着什么?为什么要等待?

有一个名为gv$session的系统视图,列出了连接到数据库的所有会话。其中一列是事件,它指示会话正在等待什么(如果有)。在查询运行时,检查该会话的事件列的值。这将准确地告诉您它正在等待什么。

直接路径插入不会阻止读取(除非查询中有
for update
子句)。它阻止“写入”。所以,可能还有一些事情你没有告诉我们。此外,在长时间运行的直接路径插入过程中查询表似乎有些奇怪。Truncate在Oracle中是非事务性的(并且立即提交),因此在插入完成之前,另一个会话将永远看不到任何数据。然而,等待的原因很难说。