ORACLE 11G EXP导出空表方法
EXP在導(dǎo)出11G的庫的時候,與過去10G,9I的版本有很大的差別. 就是沒有數(shù)據(jù)的表是不會分配空間的.
從Oracle 11.2.0.1版本開始,Oracle又提供了一種新的空間分配方法: Create一個非分區(qū)表時,這個Table Segment并沒有立刻創(chuàng)建, 而是直到有第一行記錄插入的時候才去創(chuàng)建這個Segment,這和我們以前的Segment的創(chuàng)建和空間分配方法是不一樣.這樣的段也被稱為延遲段.
?
?
Deferred segment 的優(yōu)點:
(1)降低空間的開銷:當(dāng)一次創(chuàng)建成百上千個表時,因為很多表短時間內(nèi)根本不會用到,所以可以節(jié)約大量的磁盤開銷
(2)加快應(yīng)用的部署:因為沒有分配Segment,所以建表的時候僅僅是操作數(shù)據(jù)字典而已,不設(shè)計空間的分配,所以效率自然就高了很多
?
2、設(shè)置deferred_segment_creation 參數(shù)
show parameter deferred_segment_creation
NAME???????????????????????????????? TYPE??????? VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation??????????? boolean???? TRUE
SQL> alter system set deferred_segment_creation=false;
系統(tǒng)已更改。
SQL> show parameter deferred_segment_creation
NAME???????????????????????????????? TYPE??????? VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation??????????? boolean???? FALSE
?
該參數(shù)值默認(rèn)是TRUE,當(dāng)改為FALSE時,無論是空表還是非空表,都分配segment。需注意的是:該值設(shè)置后對以前導(dǎo)入的空表不產(chǎn)生作用,仍不能導(dǎo)出,只能對后面新增的表產(chǎn)生作用
當(dāng)啟用deferred segment 之后,如果有空表,在使用exp進(jìn)行導(dǎo)出時, 會報:EXP-00011: 'Table Name' does not exist。即空表不被導(dǎo)出。
?如果想在創(chuàng)建表時就分配segment,可以使用如下SQL:???? createtable b_tab (id number, text varchar2(10)) segment creation immediate;
?
空表: user_talbes的rows=0?? ,分配的段是user_segments
?
?
select'altertable '||table_name ||'allocate extent size 64K;'from user_tableswhere table_name not in(select segment_name from user_segments where segment_type ='TABLE')?
轉(zhuǎn)載于:https://www.cnblogs.com/suncoolcat/p/3357860.html
總結(jié)
以上是生活随笔為你收集整理的ORACLE 11G EXP导出空表方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [WinCE版凯立德]2013夏季版地图
- 下一篇: 结对项目——电梯调度算法的实现和测试