Chinaunix首页 | 论坛 | 博客
  • 博客访问: 380621
  • 博文数量: 113
  • 博客积分: 3035
  • 博客等级: 中校
  • 技术积分: 1430
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-01 16:32
文章分类
文章存档

2011年(42)

2010年(70)

2009年(1)

我的朋友

分类: Oracle

2010-07-12 18:02:46

临时表两种类型:
基于事务:on commit delete rows,默认
基于会话:on commit preserve rows

临时表中的块不会获得DML锁
在临时表中执行DML语句,不会生成REDO,但会产生undo和undo的redo
可以在全局临时表上可以创建索引,视图和触发器

临时表存放的位置:
临时表存放在临时表空间

SQL> select count(*) from dba_SEGMENTS WHERE SEGMENT_NAME='T_2';

  COUNT(*)
----------
         0

SQL> select table_name,tablespace_name  from ALL_TABLES WHERE TABLE_NAME='T_2'
  2  ;

TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
T_2
此处可以看出临时表没有分配extent,tablespace_name为空

临时表的用途:
适用于insert/select ,因为insert是空白块回写,基本没有redo
不适用于update-delete/select,这样还是会产生undo的redo


阅读(949) | 评论(0) | 转发(0) |
0

上一篇:簇表初探

下一篇:系统回滚段之误解

给主人留下些什么吧!~~