1 定义
临时表(Temporary table)用于保存事务或会话期间的中间结果集。临时表中保存的数据只对当前会话可见,所有会话都看不到其他会话的数据;临时表比常规表生成的redo少得多。不过,由于临时表必须为其中包含 的数据生成undo信息, 所以也会生成一定的redo。 UPDATE和DELETE会生成最多的undo; INSERT和SELECT生成的undo最少。
2 创建临时表分类
创建Oracle临时表,可以有两种类型的临时表:会话级的临时表和事务级的临时表。
会话级: on Commit Preserve Rows
事务级: on Commit delete Rows
3 创建例子
3.1 会话级临时表
create global temporary table Student(
Stu_id Number(5),
Class_id Number(5),
Stu_Name Varchar2(8),
Stu_Memo varchar2(200))
on Commit Preserve Rows ;
3.2 事务级临时表
create global temporary table Classes(
Class_id Number(5),
Class_Name Varchar2(8),
Class_Memo varchar2(200))
on Commit delete Rows;
4 具体说明
4.1 会话级
当插入数据(无论是否进行commit),只有当前session可以查看到数据,其它会话不可见
4.2 事务级
当插入数据,不进行commit操作,只有当前session可以查看到数据,其它会话不可见。当commit后,执行插入的session也查询不到插入的数据,rollback操作,同样也会导致本session查看不到数据。
5 临时表的应用
(1)、当某一个SQL语句关联的表在2张及以上,并且和一些小表关联。可以采用将大表进行分拆并且得到比较小的结果集合存放在临时表中。
(2)、程序执行过程中可能需要存放一些临时的数据,这些数据在整个程序的会话过程中都需要用的等等。
6、注意事项:
(1)、临时表的索引以及对表的修改、删除等和正常的表是一致的。
(2)、Oracle的临时表是Oracle8i才支持的功能特性,如果你的Oracle版本比较低的话,那么就可能没有办法用到了,如果你的Oracle版本是8i的话,你还需要把$ORACLE_HOME/admin/${ORACLE_SID}/pfile目录下的init<ORACLE_SID>.ora初始参数配置文件的compatible修改为compatible = "8.1.0",我的服务器上就是这样子配置的。当然也可以修改为compatible = "8.1.6"
分享到:
相关推荐
Oracle临时表空间的清理步骤,解决数据库临时表空间满的问题。
很好的,经典.创建Oracle 临时表,可以有两种类型的临时表:会话级的临时表,事务级的临时表 。
Oracle 临时表空间使用注意 Oracle 临时表空间使用注意 Oracle 临时表空间使用注意
Oracle临时表空间不足和批处理缓慢问题探讨.pdf
本文讲述了Oracle数据库两种临时表的创建及使用注意事项。
临时表本质上是一种cache的表现形式,Oracle的临时表都是事先建好的,一旦用了临时表,存放的是和本会话相关的数据,没有人会傻乎乎地用临时表来保存本应该共享的数据。 with子查询实际上也是用了临时表,...
Oracle 临时表功能介绍: Oracle中的临时表是全局的,需要在数据库设计时创建完成,而不是程序使用时。每个登陆用户都使用这一个相同的临时表,但互相之间看不到彼此的数据,也就是说临时表是会话独立的。
临时表的应用 1)、当某一个SQL语句关联的表在2张及以上,并且和一些小表关联。可以采用将大表进行分拆并且得到比较小的结果集合存放在临时表中。 2)、程序执行过程中可能需要存放一些临时的数据,这些数据在整个...
oracle临时表(事务级、会话级).docx
Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。 重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会...
临时表数据库中临时表的深入研究,原理,用法
oracle查找定位占用临时表空间较大的SQL语句方法,包括:(1)造成临时表空间暴涨的SQL还在运行中(2)造成临时表空间暴涨的SQL已经运行过了。
在Oracle数据库中还有一种类型的表,叫做临时表。这个临时表跟永久表最大的区别就是表中的数据不会永远的存在。当一个会话结束或者事务结束的时候,这个临时表中的数据,不用用户自己删除,数据库自己会自动清除。
一个开发需求的解决方案Oracle临时表介绍.docx
Oracle释放临时表空间脚本
oracle自增长与临时表oracle自增长与临时表oracle自增长与临时表
Oracle数据库临时表空间处理,按照文档步骤执行!!!
NULL 博文链接:https://wei5201.iteye.com/blog/1111394
Oracle数据库创建临时表的过程以及和SQL Server临时表的不同点的对比的相关知识是本文我们主要要介绍的内容,接下来就让我们一起来了解...Oracle临时表分为会话级临时表和事务级临时表。 会话级临时表是指临时表中的
SpringBoot 整合Mybatis 创建临时表