首页 > 其他 > 详细

临时表学习

时间:2014-02-16 16:05:14      阅读:352      评论:0      收藏:0      [点我收藏+]
temporary tables定义

临时表中的数据只对当前Session有效,每个Session都有自己的临时数据,并且不能访问其它Session的临时表中的数据。因此,临时表不需要DML锁;

DML操作的临时表不产生redo log重作日志,但会产生回滚日志Undo log;Undo的产生(rollback segment)会产生Redo log;

支持索引创建(创建索引时不能另指定表空间,同时临时表中有数据时不能创建索引);

支持指定表空间创建临时表;

只有在没有会话使用该临时表时才支持各类DDL语句,当然TRUNCATE例外,因为TRUNCATE也只是清除当前会话数据;

类别

1. 会话级临时表

当用户退出会话结束的时候,Oracle自动清除临时表中数据。

保存一个会话SESSION的数据

PRESERVE ROWS

2. 事务级临时表

当一个事务结束(commit or rollback),Oracle自动清除临时表中数据.
保存在一个事务中需要的数据

DELETE ROWS

默认(未指定事务级/会话级)创建的临时表为事务级临时表;

创建语法

--会话级

create global temporary table g_tmp3(id int) on commit preserve rows;

--事务级

create global temporary table g_tmp2(id int) on commit delete rows;

临时表学习

原文:http://www.cnblogs.com/bowshy/p/3550912.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!