程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle中deferred_segment_creation的用法以及exp時解決辦法

Oracle中deferred_segment_creation的用法以及exp時解決辦法

編輯:Oracle教程

Oracle中deferred_segment_creation的用法以及exp時解決辦法


SYS@ORCL>show parameter segment

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation boolean TRUE
rollback_segments string
transactions_per_rollback_segment integer 5

deferred_segment_creation參數,在11.2.0.4g才有的參數,
創建一個表,在沒有插入數據時是否分配空間,為true時,不分配空間,但在sys用戶下不支持;
deferred_segment_creation=ture;
1.在sys用戶下,創建一個沒有數據的表時,同時自動分配空間;
2.在普通用戶下,創建一個沒有數據的表時,不會分配空間;

查看sql語句,是否已經分配空間;
select dbms_metadata.get_ddl('TABLE','T1') from dual;
--設置輸出格式(set long 99999)

deferred_segment_creation在11.2.0.4版本的Oracle數據庫新增參數,默認是true。

這會導致在exp時,沒有segment的對象不會導出。

解決:

(1)設置deferred_segment_creation的值為false
此方法只對以後的表有效,之前的表還是沒分配空間。

(2) 創建表的時候聲明立即創建Segment

create table table_name segment creation immediate;

(3)對於已經創建但是還沒有Segment的表來說,
可以執行alter table table_name allocate extent來使其創建出分配空間,
當然也可以插入一條數據,使其創建分配空間;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved