Oracle数据库临时表-----会话级的临时表和事务级的临时表
2009-01-16 23:18
246 查看
我们在创建数据表的时候,若没有特殊的指明,那么我们创建的表是一个永久的关系型表格,也就是说,这个表格中对应的数据,除非是我们显示的删除的话,表中的数据是永远都存在的。相对应的,在Oracle数据库中还有一种类型的表,叫做临时表。这个临时表跟永久表最大的区别就是表中的数据不会永远的存在。当一个会话结束或者事务结束的时候,这个临时表中的数据,不用用户自己删除,数据库自己会自动清除。
会话级的临时表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT PRESERVE ROWS;
事务级的临时表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT DELETE ROWS;
--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。
事务临时表的话,当事务结束的时候,就会清空这个事务临时表。所以,当我们在数据库临时表中插入数据后,只要事务没有提交的话,该表中的数据就会存在。但是,当事务提交以后,该表中的数据就会被删除。而且,这个变化不会在重做日志中显示。
会话临时表,顾名思义,是指数据只在当前会话内有效的临时表。关闭当前会话或者进行新的连接之后,数据表中的内容就会被清除。
事务级的临时表,我用过来存放运算过程中产生的中间数据,
还有,比如你可能多次访问到一个大表,但每次访问的数据都是相同的,可以先把它放到临时表里,这里可以避免多次访问大表.
删除表和截断表命令之间的区别,表删除包括表的定义和关联对象(规则、索引、约、触发器、主键,等)当然包括表中的数据。truncate <table>命令则仅仅删除了表中所有的数据行。表的结构和所有的索引仍然继续存在,直到你输入删除表的命令(如上所述)。绑定到列上的规则、默认值、约束仍然继续绑定,并且触发器也仍然起作用。
截断表的执行速度与不带where子句的delete(删除)命令相同,甚至比它还要快。delete(删除) 一次删除一行数据,并且将每一行被删除的数据都作为一个事务记录日志;而truncate (截断)表则回收整个数据页,只记录很少的日志项。delete(删除)和truncate(截断)都会回收被数据占用的空间,以及相关的索引。只有表的拥有者可以截断表。
网络信息整理
会话级的临时表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT PRESERVE ROWS;
事务级的临时表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT DELETE ROWS;
--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。
事务临时表的话,当事务结束的时候,就会清空这个事务临时表。所以,当我们在数据库临时表中插入数据后,只要事务没有提交的话,该表中的数据就会存在。但是,当事务提交以后,该表中的数据就会被删除。而且,这个变化不会在重做日志中显示。
会话临时表,顾名思义,是指数据只在当前会话内有效的临时表。关闭当前会话或者进行新的连接之后,数据表中的内容就会被清除。
事务级的临时表,我用过来存放运算过程中产生的中间数据,
还有,比如你可能多次访问到一个大表,但每次访问的数据都是相同的,可以先把它放到临时表里,这里可以避免多次访问大表.
删除表和截断表命令之间的区别,表删除包括表的定义和关联对象(规则、索引、约、触发器、主键,等)当然包括表中的数据。truncate <table>命令则仅仅删除了表中所有的数据行。表的结构和所有的索引仍然继续存在,直到你输入删除表的命令(如上所述)。绑定到列上的规则、默认值、约束仍然继续绑定,并且触发器也仍然起作用。
截断表的执行速度与不带where子句的delete(删除)命令相同,甚至比它还要快。delete(删除) 一次删除一行数据,并且将每一行被删除的数据都作为一个事务记录日志;而truncate (截断)表则回收整个数据页,只记录很少的日志项。delete(删除)和truncate(截断)都会回收被数据占用的空间,以及相关的索引。只有表的拥有者可以截断表。
网络信息整理
相关文章推荐
- oracle 临时表(事务级、会话级)
- oracle数据库使用临时表
- 详细讲解Oracle数据库中的临时表用法
- 临时表在Oracle数据库与SQL Server数据库中的异同
- 数据库的临时表:临时表在Oracle数据库与SQL Server数据库中的异同
- Oracle 数据库创建事务级或者会话级的临时表
- 临时表在Oracle数据库与SQL Server数据库中的异同
- Oracle 学习系列之二(会话与事务级临时表和dual表 )
- 详细讲解Oracle数据库中的临时表用法
- Oracle数据库中的临时表用法
- 详细讲解Oracle数据库中的临时表用法
- ORACLE数据库设置编码(试图解决Oracle中em乱码问题)
- Oracle数据库193错误和数据分析师是做什么的
- linux下用C编写的OCI连接Oracle数据库程序2
- ORACLE数据库配置与使用心得
- hibernate根据时间日期来查询oracle数据库
- 81.Oracle数据库SQL开发之 修改表内存——使用UPDATE语句
- Oracle数据库10g垃圾表清除最新方法
- 91.Oracle数据库SQL开发之 修改表内存——数据库事务的并发事务
- Oracle数据库导入 配置OEM