ORACLE 11G EXP导出空表方法
EXP在導(dǎo)出11G的庫(kù)的時(shí)候,與過(guò)去10G,9I的版本有很大的差別. 就是沒(méi)有數(shù)據(jù)的表是不會(huì)分配空間的.
從Oracle 11.2.0.1版本開(kāi)始,Oracle又提供了一種新的空間分配方法: Create一個(gè)非分區(qū)表時(shí),這個(gè)Table Segment并沒(méi)有立刻創(chuàng)建, 而是直到有第一行記錄插入的時(shí)候才去創(chuàng)建這個(gè)Segment,這和我們以前的Segment的創(chuàng)建和空間分配方法是不一樣.這樣的段也被稱為延遲段.
?
?
Deferred segment 的優(yōu)點(diǎn):
(1)降低空間的開(kāi)銷:當(dāng)一次創(chuàng)建成百上千個(gè)表時(shí),因?yàn)楹芏啾矶虝r(shí)間內(nèi)根本不會(huì)用到,所以可以節(jié)約大量的磁盤(pán)開(kāi)銷
(2)加快應(yīng)用的部署:因?yàn)闆](méi)有分配Segment,所以建表的時(shí)候僅僅是操作數(shù)據(jù)字典而已,不設(shè)計(jì)空間的分配,所以效率自然就高了很多
?
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時(shí),無(wú)論是空表還是非空表,都分配segment。需注意的是:該值設(shè)置后對(duì)以前導(dǎo)入的空表不產(chǎn)生作用,仍不能導(dǎo)出,只能對(duì)后面新增的表產(chǎn)生作用
當(dāng)啟用deferred segment 之后,如果有空表,在使用exp進(jìn)行導(dǎo)出時(shí), 會(huì)報(bào):EXP-00011: 'Table Name' does not exist。即空表不被導(dǎo)出。
?如果想在創(chuàng)建表時(shí)就分配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导出空表方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [WinCE版凯立德]2013夏季版地图
- 下一篇: 结对项目——电梯调度算法的实现和测试