您的位置:首页 > 数据库 > Oracle

oracle 临时表

2013-02-07 09:36 288 查看
这些临时表用来保存一个会话 SESSION 的数据,或者保存在一个事务中需要。当会话退出会话,或者保存事务中需要的数据。

当会话退出用户提交 commit 和回滚 rollback 事务的时候,临表数据自动清空事务的时候。

oracle 的临时表创建之后基本不占用空 间,并非存放在户的临时表创建之后基本不占用空 间,并非存放在户间中,而是存放在 间中,而是存放在 Schema 所指定的临时表空间中。 如果你 没有指定临时表 (包 括临时表的索引)存放空候, 你插入到临时表的数据是存放在 ORACLE 系统的临时表空间中(temp).

可以对临时表创建索引, 视图可以对临时表创建索引, 视图触发器, 可以用 export 和import 工具导 入出表的定义,但是不能导数据。对所有会话可见 出表的定义,但是不能导数据。对所有会话可见 出表的定义,但是不能导数据。对所有会话可见 。建立在临时表上 。建立在临时表上 的 索引也是临时,也是只对当前会话或者事务有效 .

尽管对临时表的 尽管对临时表的 尽管对临时表的 DML 操作速度比较快,但 操作速度比较快,但 操作速度比较快,但 操作速度比较快,但 同样也是要产生 同样也是要产生 同样也是要产生 同样也是要产生 Redo Log Redo Log ,只是 同样的 DML 语句,比对 PERMANENT 的DML 产生的 Redo Log 少.

临时表的不足:1、不支持 lob 对象。2、不支持主外键关系。

临时表有两种类型:1、会话级的临时表。2、事务级的临时表。

特性和能 (与普通表和 视图的比较 ):

1. 临时表只在当前连接内有效

2. 临时表不建立索引 ,所以如果数据量比较大或进行多次查询时 ,不推荐使用

3. 数据处理比较复杂的时候表快 ,反之视图快点

4. 在仅查询数据的时候建议用游标 : open cursor for 'sql clause';

创建会话级别的临时表如:

create global temporary table test

(

recordtime varchar2(14) not null,

avgvalue number default 0

)

on commit preserve rows;

创建事务级别的临时表如:

create global temporary table test

(

recordtime varchar2(14) not null,

avgvalue number default 0

)

on commit deleterows;



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: