普通表中oracle临时表的好处

时间:2013-08-20 13:45:24

标签: oracle oracle11g oracle10g

我在oracle中创建了临时表。但无法理解这一点的最佳用途。 有人可以帮助我了解在Oracle (create temporary table temp_table)中使用临时表而不是普通表(create table temp_table)的功能和优点 )

2 个答案:

答案 0 :(得分:6)

来自concepts guide

  

临时表定义的持久性与永久性相同   表定义,但数据仅存在于a的持续时间内   交易或会话。临时表在应用程序中很有用   结果集必须暂时保留,也许是因为   结果是通过运行多个操作构建的。

And

  

临时表中的数据对会话是私有的,这意味着   每个会话只能查看和修改自己的数据。

因此,一个方面是数据对您的会话是私有的。对于永久表中的未提交数据也是如此,但是使用临时表,数据可以持久存在并且在提交期间保持私有(基于创建时的on commit子句)。

另一个方面是他们使用temporary segments,这意味着使用临时表生成的重做和撤消开销要少于将相同数据临时放入永久表中,可选地更新它,然后再生成当你完成它时删除它。如果多个会话需要自己的临时数据版本,也可以避免争用和锁定问题。

答案 1 :(得分:0)

以下是我们临时表的原因和时间: -

1)创建临时表以便以表格形式存储数据,以便在需要时在特定会话中轻松检索数据。

2)它还增加了保护数据仅用于该特定会话的安全目的。

3)当代码变长且打开了很多游标时,最好将数据放在临时表中,以便在需要的时候轻松获取。