临时表的使用方法:
创建
Oracle
临时表,可以有两种类型的临时表:
会话级的临时表
事务级的临时表。
1
)
会话级的临时表因为这这个临时表中的数据和你的当前会话有关系,当你当前
SESSION
不退出的情况下,临时表中的数据就还存在,而当你退出当前
SESSION
的时候,临时表中的数据就全部没有了,当然这个时候你如果以另外一
个
SESSION
登陆的时候是看不到另外一个
SESSION
中插入到临时表中的数据的。即两个不同的
SESSION
所插入的数据是互不相干的。当某一个
SESSION
退出之后临时表中的数据就被截断(
truncate table
,即数据清空)了。会话级的临时表创建方法:
Create Global
Temporary Table Table_Name
(Col1 Type1,Col2
Type2...) On Commit Preserve Rows
;
举例:
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 ;
2
)
事务级临时表是指该临时表与事务相关,当进行事务提交或者事务回滚的时候,临时表中的数据将自行被截断,其他的内容和会话级的临时表的一致(包括退出
SESSION
的时候,事务级的临时表也会被自动截断)。事务级临时表的创建方法:
Create Global
Temporary Table Table_Name
(Col1 Type1,Col2
Type2...) On Commit Delete Rows
;
举例:
create global
temporary table Classes
(Class_id
Number(5),
Class_Name
Varchar2(8),
Class_Memo
varchar2(200)) on Commit delete Rows ;
3
)
两中类型临时表的区别
会话级临时表采用
on commit preserve rows
;而事务级则采用
on commit delete rows
;用法上,会话级别只有当会话结束临时表中的数据才会被截断,而且事务级临时表则不管是
commit
、
rollback
或者是会话结束,临时表中
的数据都将被截断
4
)什么时候使用临时表
1
)、当某一个
SQL
语句关联的表在
2
张及以上,并且和一些小表关联。可以采用将大表进行分拆并且得到比较小的结果集合存放在临时表中
2
)、程序执行过程中可能需要存放一些临时的数据,这些数据在整个程序的会话过程中都需要用的等等。
分享到:
相关推荐
创建临时表。临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。
很好的,经典.创建Oracle 临时表,可以有两种类型的临时表:会话级的临时表,事务级的临时表 。
oracle查找定位占用临时表空间较大的SQL语句方法,包括:(1)造成临时表空间暴涨的SQL还在运行中(2)造成临时表空间暴涨的SQL已经运行过了。
本文实例讲述了MySQL使用临时表加速查询的方法。分享给大家供大家参考。具体分析如下: 使用MySQL临时表,有时是可以加速查询的,下面就为您详细介绍使用MySQL临时表加速查询的方法。 把表的一个子集进行排序并创建...
取代游标的方案:使用min()函数或max()函数;用表函数;使用临时表
处理方法 VARCHAR2(10), 取机日期 DATE, 生成单号 VARCHAR2(20), 委托单号 VARCHAR2(20), 城市名称 VARCHAR2(50), 联系人 VARCHAR2(20), 区号 VARCHAR2(20), 联系电话 VARCHAR2(20), 经销商名称 VARCHAR2...
主要介绍了Mysql临时表原理及创建方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
这是某银行 DB2 系统发生的一次真实案例,SQL 语句执行时间变长,最后发现“罪魁祸首”竟是 DB2 系统临时表空间过大。本文将介绍这个性能问题的分析处理过程,如何逐步定位问题根本原因,并提供了解决方法。这其中...
如果您使用的是旧版本的MySQL比3.23,可以不使用临时表,但可以使用堆表。 如前所述临时表将只持续只要的会话是存在的。如果运行一个PHP脚本中的代码,该临时表将被销毁时,会自动执行完脚本后。如果已连接到MySQL...
好像并没有for和foreach这种类型的功能呀,不过关于数据库遍历最常见的方法当然是大家经常会想到的游标啦,但是这次我并没有使用游标,而是通过创建临时表的方式来更新遍历数据的。 为什么不使用游标,而使用创建...
创建临时表,#代表局部临时表,##代表全局临时表。局部临时表和全局临时表的具体含义是什么呢? 举例说明一下比较清晰些,先来看下局部临时表,【新建查询】,在里面输入如下文本: 运行后,我们在此文件执行输入: ...
临时表产生:A: SELECT INTO和B:CREATE TABLE + INSERT INTO 1. A 要比B 快很多。...创建临时表的方法: 方法一: create table #临时表名(字段1 约束条件, 字段2 约束条件, …..) create table ##临时表名
我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是使用临时表及表变量。
如果默认引擎是INNODB,而你又疯狂的使用临时表。那么,你的IBDATA会被无限的增大。 3. 和磁盘表一样,默认写入到binlog, 而且被动的加入了rollback 计划。 幻想如下场景: 数据库损坏,也没有备份。刚好二进制日志...
KSQLURL格式,KSQL规范,数据库对象,系统表,临时表使用方法
解决临时表空间过大问题 以及实现方法。脚本
主要介绍了sql server中判断表或临时表是否存在的方法,需要的朋友可以参考下