全球临时表

时间:2014-12-29 19:08:59

标签: multithreading oracle global-temp-tables

帮助我了解Global临时表的工作原理

我的进程将是线程化的,并且只需要对该线程会话可见的数据。所以我们选择了Global Temporary Table。

最好在所有线程完成后保留全局临时表不被删除,或者删除表是否明智。调用此过程可能会在一天内发生一次或两次。

需要大约4个表

2 个答案:

答案 0 :(得分:6)

Oracle Temp表与SQL Server #temp表不同。我无法看到任何理由不断删除/创建表格。一旦事务或会话完成,数据就会在每个会话的基础上消失(取决于表创建选项)。如果您有多个线程使用相同的数据库会话,他们将看到彼此的数据。如果每个线程有一个会话,则数据的范围受限于您提到的范围。请参见示例here

答案 1 :(得分:0)

如果删除全局临时表并重新创建它,则它不会影响任何数据库活动和服务器磁盘io活动,因为全局临时表是在临时表空间中创建的,其中没有生成存档而检查点没有更新临时文件的标头。在这种情况下,临时表的目的只能得到准确保存。