关于临时表的几个小问题

1、oracle推不推荐使用临时表,为什么?
2、临时表有几种类型,有没有可以自动删除的?
3、如果不使用临时表,有什么替代的方案。
---------------------------------------------------------------

推荐使用临时表
临时表示Oracle用于存储所有临时表的所在
类似于数据库白纸或草稿纸
Oracle工作时也需要使用一些临时的磁盘空间
当特定事件发生时 Oracle需要用这些磁盘空间管理有关的事务
---------------------------------------------------------------

不使用临时表
可以自己建一个表
然后每次使用该表时做一个判断
之后再做操作

---------------------------------------------------------------

在Oracle8i中,可以创建以下两种临时表:
1。会话特有的临时表
CREATE GLOBAL TEMPORARY

 1<table_name> (<column specification=""> )   
 2ON COMMIT PRESERVE ROWS;   
 3  
 42。事务特有的临时表   
 5CREATE GLOBAL TEMPORARY <table_name> (<column specification=""> )   
 6ON COMMIT DELETE ROWS;   
 7CREATE GLOBAL TEMPORARY TABLE MyTempTable   
 8所建的临时表虽然是存在的,但是你试一下insert 一条记录然后用别的连接登上去select,记录是空的,明白了吧。   
 9下面两句话再贴一下:   
10\--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)   
11\--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。   
12  
13临时表也值得使用,它占用临进表空间。   
14不使用临时表,那可使用游标.</column></table_name></column></table_name>
Published At
Categories with 数据库类
Tagged with
comments powered by Disqus