在oracle11g中默認是不導出空表的
利用命令
show parameter deferred_segment_creation 顯示如下結(jié)果
deferred_segment_creation=TRUE 表示空表不創(chuàng)建數(shù)據(jù)段,同時也意味著空表不被導出,
只有在這個參數(shù)設(shè)置為FALSE后新建的表才能導出。
命令如下 alter system set deferred_segment_creation=false;
現(xiàn)有空表的導出辦法
1. 利用PL/SQL Developer 中的 Reports > Objects > Tables 分析工具,可以通過 Num Rows 查看到記錄為 0 的表
2. 利用 SyBase 提供的數(shù)據(jù)建模工具PowerDesigner ,向空表中插入測試數(shù)據(jù),過程如下:
1. 新建工作空間,然后在如下路徑中建立數(shù)據(jù)源并配置逆向工程,如下圖
圖 – 1
彈出 “新物理數(shù)據(jù)模型”配置窗口, 在DBMS中選擇數(shù)據(jù)庫版本 , 點擊確定,如下圖
圖 - 2
在“數(shù)據(jù)庫逆向工程配置”窗口,選擇“使用數(shù)據(jù)源”, 如下圖
圖 – 3
第一次使用點擊數(shù)據(jù)源配置的地小按鈕
圖 – 4
使用ODBC數(shù)據(jù)源,第一次使用,需要配置ODBC , 點擊“配置”,彈出“數(shù)據(jù)連接配置”窗口,如下圖
圖 – 5
點擊
圖 – 6
點擊“添加”增加連接,就可以了,不詳細描述了
回到 圖- 4 , 輸入用戶名和密碼,點擊“連接”,就會看到當前數(shù)據(jù)庫用戶的所有表,選擇剛才獲取的那些空表 ,完成后入下圖所示
圖 – 7
插入測試數(shù)據(jù),如下圖所示
點擊,彈出如下頁面
在 標簽“Number Of Rows ”中可以驗證數(shù)據(jù)的記錄數(shù),在標簽“Selection”中選擇要插入數(shù)據(jù)的表,將“Default number of rows ” 改為想要插入的記錄條數(shù), 點擊“應用”,即可完成測試數(shù)據(jù)的創(chuàng)建,將“Default number of rows ” 改為0 ,并選中“Delete old data” ,再點擊“應用” ,即可完成測試數(shù)據(jù)的刪除
通過以上步驟,即可導出空表
提示:
1. 咱們目前的數(shù)據(jù)庫中沒有建立外鍵約束,但如果有外鍵約束插入測試數(shù)據(jù)就會有問題,可以通過如下命令,可以禁用所有外鍵約束
select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='R'
將結(jié)果復制下來運行即可。
待完成后,重新啟動所有外鍵的SQL預計
select 'alter table '||table_name||' enable constraint '||constraint_name||';' from user_constraints where constraint_type='R'
然后將結(jié)果復制下來運行即可。
2. 對表和索引的分析也需要占用系統(tǒng)資源,可能會影響到其他事務(wù)的運行。
一些數(shù)據(jù)量小的數(shù)據(jù)表就沒有必要進行分析,對于一些數(shù)據(jù)量頻繁變化的數(shù)據(jù)表倒是有必要經(jīng)常進行分析,避免對執(zhí)行計劃的影響。
所以在應用服務(wù)繁忙時,盡量不要使用數(shù)據(jù)分析