java oracle 临时表_ORACLE 临时表

1.概念特性

临时表用来保存一个会话SESSION或一个事务中需要的数据。当会话退出或事务结束时,临时表的数据自动清空,但是表结构及元数据

依旧会存储在用户的数据字典中。

临时表不是存放于用户表空间,而是存入于指定的临时表空间中,没有指定临时表(包括其索引)存入的表空间的时间,临时表的数据则

存放于系统的临时表空间中(TEMP)。

临时表上可以创建索引,视图和触发器,可以用EXPORT 和 IMPORT 工具导入和导出表的定义,但是不能导出数据,表的定义对所有的会话可见。

建立在临时表的索引也是临时的,也只对当前会话或事务有效。

对临时表的DML操作速度相对较快,但是也要产生Redo log,只是同样的DML,比对PERMANENT的DML产生的Redo log相对要少。

2.临时表的缺陷:

1.不支持LOB对象。

2.不支持主外键关系

3.应用场景

1.比如购物网站,在整个SESSION中保存购物车信息。采用(ON COMMIT PRESERVE ROWS)的方法解决。

2.存储中间数据。比如数据分析应用。

4.会话临时表(session级别):

SQL> create global temporary table test(id number) on commit preserve rows;

Table created

SQL> select * from test;

ID

----------

SQL> insert into test(1);

insert into test(1

你可能感兴趣的:(java,oracle,临时表)