网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.说一说Oracle的优化器(Optimizer).
.SGA的大小.
.通过socket访问数据库.
.linux可以绕开三茗硬盘保护卡.
.oracle 10g 新特性中文笔记三.
.ORACLE备份二(ORACLE BACKUP STR.
.创建Bitmap_Join_Indexes中的约束.
.如何用SQL生成SQL批处理文件?.
.TestKing Oracle 1z0-033 V23.
.如何通过RamDisk的方法加速小型数.
.和权限有关的表介绍.
.解决ora-01861文字与格式字符串不.
.在Oracle9i Release 2中使用PL/S.
.Oracle数据库中索引的维护.
.Oracle数据库的安全策略.
.错误解决:ora-12638:身份证明检.
.Linux 使用技巧33条.
.讲解Oracle FailSafe与rac的联系.
.让数据库“安居”到Linux上.
.面向对象的关系数据库设计.

关于临时表(from metalink)

发表日期:2008-2-9



  IntrodUCtion
  ~~~~~~~~~~~~
  This is an overview of TEMPORARY TABLES introduced in Oracle8i. This new feature allows temporary tables to be created automatically in a users temporary tablespace.
  
  Syntax
  ~~~~~~
   CREATE GLOBAL TEMPORARY TABLE tablename ( columns )
   [ ON COMMIT PRESERVE DELETE ROWS ]
  
   The default option is to delete rows on commit.
  
  What Happens
  ~~~~~~~~~~~~
   When you create a GLOBAL TEMPORARY table a dictionary definition of the table is created. As soon as the table gets populated (on the first
   INSERT or at creation time for CTAS operations) a temporary segment is created in the users default TEMPORARY tablespace location. This temporary
   segments contents are just like a normal table.
  
   Different sessions using the same GLOBAL TEMPORARY table get allocated
   different temporary segments. The temporary segments are cleaned up
   automatically at session end or transaction end depending on the specified
   duration (ON COMMIT PRESERVE ROWS or ON COMMIT DELETE ROWS).
  
   Apart from the data visibility temporary tables can be used like ordinary
   tables for most operations.
  
  
  Characteristics
  ~~~~~~~~~~~~~~~
  
  1. Data exists only for the duration of either the session or
   transaction.
  
   This can be specified in the create table command.
   For example:
  
   SQL> Create global temporary table emp_temp(eno number)
   on commit delete rows;
  
   - OR -
  
   SQL> Create global temporary table emp_temp(eno number)
   on commit preserve rows;
  
  
   ON COMMIT DELETE ROWS indicates a transaction level duration and PRESERVE indicates a session level duration.
  
  2. Data is visible only at session or transaction level. Multiple users using the same temporary table can see the definition of the table and their own data segment and nothing else.
  
  3. Indexes, triggers and views can be created on these tables.
  
  4. If an Index is created on temporary tables then it MUST be created
   when the table is empty - ie: When there are NO temporary segments for incarnations of the table. Indexes are implemented as separate temporary segments.
  
  5. No redo is generated for operations on the temporary table itself BUT undo is generated. Redo *IS* generated for the undo so temporary tables do indirectly generate redo.
  
  6. The keyWord GLOBAL indicates the table definition can be viewed by anybody with sufficient privileges - ie:using the same rules that apply to normal user tables. Currently only GLOBAL TEMPORARY tables are supported.
  
  7. TRUNCATE operations truncate only the current session's incarnation of the table.
  
  8. You can only eXPort or import the definition not the data.
  
  9. Segments get created only on the first insert (or CTAS) operation.
  
  
  Drawbacks
  ~~~~~~~~~
  
  1. The table definition is not dropped automatically.
  
  2. Only GLOBAL tables are supported right now,
not local ones.
  
  3. Can perform DDL only when no session is bound to it.
  
  4. There is no underlying support for STATISTICS on GLOBAL TEMPORARY tables so CBO (Cost Based Optimizer) has no statistical information to help determine an execution plan.
   NB: "ANALYZE TABLE COMPUTE/ESTIMATE STATISTICS" returns success even though no statistics are gathered.
  
  Constraints
  ~~~~~~~~~~~
  Constraints can be implemented on the table either at the session or
  transaction level depending on the scope of the temporary table and are not for the entire table even though the constraint is defined for the entire table.
  
  If there is a primary key or unique key constraint, it is applicable only at either session or transaction leve i.e. two users can enter the same values into the table from different sessions even though you have a primary / unique key in place for the entire table (if the scope is the session )
  
  In the case of a transaction level temporary table, the same values can be entered from different transactions.
上一篇:PHP连ORACLE的类文件 人气:830
下一篇:和权限有关的表介绍 人气:580
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐