ITPub博客

首页 > 数据库 > Oracle > deferred_segment_creation 参数

deferred_segment_creation 参数

原创 Oracle 作者:tangxiaodong 时间:2015-05-19 09:13:37 0 删除 编辑

一、导入时少表

    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博客 ” ,链接:https://blog.itpub.net/8043290/viewspace-1661496/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-07-18

  • 博文量
    11
  • 访问量
    98996