一、导入时少表
1.Oracle 11g EXP导出,再IMP导入时,发现导入后,出现少表,有一些数据为空的表结构没有被导入,原因是于导出时,这些空表没有被导出。
二、查阅资料
1.从网上翻看各类资料,产生“导入时少表”的原因,在于Oracle 11g 的参数 “deferred_segment_creation”。
2.”deferred_segment_creation”参数
①从字面上的意思“延迟段创建”,在oracle11g中,创建了一个数据表,如果刚刚创建出来的时候没有数据加入,Oracle不会创建对应的‘段’结构,也就不会分配对应的空间,Oracle 11g版本之前的版本(oracle 10g\oracle 9i),数据表创建的同时,就发生了空间的Segment分配的过程。
②作用:节省对象空间大小。
③默认值:‘true’,安装oracle11g之后,此参数的默认为打开状态。
④查看参数的方法:
SQL>show parameter deferred_segment_creation;
NAME TYPE VALUE
------------------------------- ----------- ------------------------------
deferred_segment_creation boolean TRUE
⑤配置参数为‘false’:
alter system set deferred_segment_creation=false;
参数修改之后,只会对这之后的创建表有影响(无论空表还是非空表都会分配segment),之前已经存在的表都不会改变。
⑥更改受参数影响的表
1)select ‘alter table ’||table_name|| ‘allocate extent ;’ from user_tables where num_rows=0 ;得出 ‘'alter table 表名 allocate extent;”语句。
2)执行‘'alter table 表名 allocate extent;”语句。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8043290/viewspace-1661496/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8043290/viewspace-1661496/