a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 70|回复: 0

[综合] Oracle临时表用法实用技术

[复制链接]
发表于 2012-8-4 13:54:49 | 显示全部楼层 |阅读模式
文章首要介绍的是Oracle姑且表的现实用法的经验心得,我们今朝所使用的 Oracle 是作为数据库支撑平台的现实应用,可以说其数据量仍是算的上斗劲复杂的系统,即表的数据量一般情形下都是在百万级以上的数据量。   当然在 Oracle 中建树分区是一种不错的选择,可是当你发现你的应用有多张表联系关系的时辰,而且这些表年夜部门都是斗劲复杂,而你联系关系的时辰发现其中的某一张或者某几张表联系关系之后获得的结不美观集很是小而且发芽获得这个结不美观集的速度很是快,那么这个时辰我考虑在 Oracle 中建树“姑且表”。9 n7 t, p; b$ a0 a( s) ^
  我对姑且表的理解:在 Oracle 中建树一张表,这个表不用于其他的什么功能,首要用于自己的软件系统一些特有功能才用的,而当你用完之后表中的数据就没用了。 Oracle 的姑且表建树之后根基不占用表空间,如不美观你没有指定Oracle姑且表(搜罗姑且表的索引)存放的表空的时辰,你插入到姑且表的数据是存放在 Oracle 系统的姑且表空间中( TEMP )。- ]* }6 n0 f) H  a3 ]$ e- A
  姑且表的建树
+ }+ i/ {! O% J% Z3 x2 j, t  建树Oracle 姑且表,可以有两种类型的姑且表:
- L% w0 G  j4 P- e. ?  会话级的Oracle姑且表5 i) J/ {- c1 n- J# F
  事务级的姑且表 。1 `/ y9 d8 v$ k' R$ u( q
  1) 会话级的姑且表因为这这个姑且表中的数据和你的当前会话有关系,当你当前SESSION 不退出的情形下,姑且表中的数据就还存在,而当你退出当前SESSION 的时辰,姑且表中的数据就全数没有了,当然这个时辰你如不美观以此吐矣闽SESSION 上岸的时辰是看不到此吐矣闽SESSION 中插入到姑且表中的数据的。
/ ~4 B9 |; X; W, Q& u! D+ ?4 o5 E  即两个分歧的SESSION 所插入的数据是互不相关的。当某一个SESSION 退出之后姑且表中的数据就被截断(truncate table ,即数据清空)了。会话级的姑且表建树体例:
8 w3 ~( v7 n/ d  1.Create Global Temporary Table Table_Name* u& r( d7 g+ D
  2.(Col1 Type1,Col2 Type2...) On Commit Preserve Rows ;9 v8 A8 F7 V- h3 Z) D! B" o
  举例:- l$ m: v) {* @# o7 z. ~
  1.create global temporary table Student" t* Z( _$ k$ _# ^% R3 L1 r$ f
  2.(Stu_id Number(5),
7 m: @2 c" I  `  f8 V  3.Class_id Number(5),
$ H, f1 U4 D; M. X$ ^+ S2 D+ T  4.Stu_Name Varchar2(8),
8 S8 H  F" Y# }8 B  5.Stu_Memo varchar2(200)) on Commit Preserve Rows ;
4 G& \1 O- ~+ i! @  2) 事务级姑且表是指该姑且表与事务相关,当进行事务提交或者事务回滚的时辰,Oracle姑且表中的数据将自行被截断,其他的内容和会话级的姑且表的一致(搜罗退出SESSION 的时辰,事务级的姑且表也会被自动截断)。事务级姑且表的建树体例:- b( c% ~0 @6 B
  1.Create Global Temporary Table Table_Name( s, u  r" M" b. q+ t. @
  2.(Col1 Type1,Col2 Type2...) On Commit Delete Rows ;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-15 06:59 , Processed in 1.614938 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表