我有一个全局临时表,在提交时设置为删除。它在并发问题上的表现如何?我的意思是如果另一个会话想要使用该全局临时表会发生什么?答案可能不是“他们共享相同的数据”。
现在,如果我的猜测是正确的:),表是否锁定直到第一个连接提交,或者dbms是否为每个连接创建一个全局临时表? (类似于桌子的一个实例?)
答案 0 :(得分:8)
临时表中的数据仅对将数据插入表中的会话可见。
每个会话都有其临时表的逻辑独立副本。
由于您无法看到其他会话的数据,并且由于Oracle在行级别处理锁定,因此您不能被其他会话的DML阻止。并发DML(插入,删除,更新)不会影响其他会话。
只有DDL需要锁定表(即:ALTER TABLE ...)