【发布时间】:2010-04-21 08:26:00
【问题描述】:
我有一个全局临时表,它设置为提交时删除。它在并发问题上的表现如何?我的意思是如果另一个会话想要使用该全局临时表会发生什么?答案可能不是“他们共享相同的数据”。
现在,如果我的猜测是正确的 :),表是在第一个连接提交之前锁定的,还是 dbms 为每个连接创建一个全局临时表? (类似于表格的实例?)
【问题讨论】:
标签: oracle concurrency
我有一个全局临时表,它设置为提交时删除。它在并发问题上的表现如何?我的意思是如果另一个会话想要使用该全局临时表会发生什么?答案可能不是“他们共享相同的数据”。
现在,如果我的猜测是正确的 :),表是在第一个连接提交之前锁定的,还是 dbms 为每个连接创建一个全局临时表? (类似于表格的实例?)
【问题讨论】:
标签: oracle concurrency
临时表中的数据仅对将数据插入表中的会话可见。
每个会话都有其临时表的逻辑独立副本。
由于您看不到其他会话的数据,并且由于 Oracle 在行级别处理锁,因此您不会被其他会话的 DML 阻塞。并发 DML(插入、删除、更新)不会影响其他会话。
只有 DDL 需要对表进行锁定(即:ALTER TABLE...)
【讨论】: