臨時表的操作

zhjixi1234發表於2013-08-01
臨時表

1.臨時表上的操作比永久錶快
1)臨時表大部分情況下,資料存放在會話的PGA內;即使資料量過大,需要存放至臨時表空間中,I/O速度也比永久表空間的I/O快,因為臨時表空間的讀寫為磁碟讀寫,不經過快取。
2)針對臨時表的DML不生成重做資料。

2.建立(建立後所有會話均可使用)
create global temporary table tmp_emps on commit preserve rows as select * from employees where 1=2;
注:on commit delete/preserve rows 提交後是否保留資料

3.插入(插入資料提交僅本會話可見)
insert into tmp_emps select * from employees where department_id=30;
commit;

4.刪除臨時表(必須所有會話都未使用臨時表,否則報錯ora 14452)
drop table tmp_emps;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26739940/viewspace-767610/,如需轉載,請註明出處,否則將追究法律責任。

相關文章