Oracle临时表
基本介绍:存储在临时表表空间中,每个session只能查看和修改自己的数据.
作用:可以很好提高数据库性能
适用情况:没有必要对中间数据进行存储
临时表有两种类型:
会话级临时表:和session有关,session不退出,数据仍然存在.两个session的同一临时表的数据互不相干.
会话级临时表的创建方法:
create global temporary table tab_name
(col1 type,
col2 type)
on commit preserve rows;
事务级临时表:事务相关,事务提交或回滚数据将会截断.退出session时,事务级临时表的数据也将被清空.
事务级临时表的创建方法:
create global temporary table tab_name
(col1 type,
col2 type)
on commit delete rows;
Oracle临时表的特点:
1:不支持LOB对象
2:不支持主外键关系
3:临时表不能永久的保持数据
4:临时表不会有DML锁.LOCK语句对临时表也是无效的,因为临时表的数据是私有的.
(临时表可以并发,但要注意并发的数量,我之前的一次,由于并发数量太多,出现了无法扩展临时表表空间的错误)
5:对临时表的DML也会产生redo,但要少.
6:临时表可以创建临时的索引,视图,触发器.
7:如果DROP会话级临时表,并且其中包含数据时,必须先截断其中的数据.否则会报错.