• Oracle11g空表导出设置


      

    alter system set deferred_segment_creation=false;
    select 'alter table '||table_name||' allocate extent;' from user_tables where segment_created='NO'

    处理Oracle导出dmp文件无法处理空表,以及少表的情况
    方法1、批量处理空表

    步骤1、先分析表
            生成分析语句
            --select 'analyze table '||table_name||' compute statistics;' from user_tables;

    步骤2、将分析语句拿出来执行
            类似以下语句
            analyze table table_name compute statistics;

    步骤3、处理空表
            生成处理语句
            --select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
    步骤4、执行处理语句
            类似以下语句
            alter table table_name allocate extent;
    步骤5、查询所有空表
            --select table_name from user_tables where NUM_ROWS=0;

    方法2、设置deferred_segment_creation参数

    SQL> show parameter deferred_segment_creation
    NAME                                 TYPE        VALUE 

    ------------------------------------ ----------- ------------------------------ 
    deferred_segment_creation            boolean     TRUE
    SQL> alter system set deferred_segment_creation=false;
    系统已更改。
    SQL> show parameter deferred_segment_creation 

    NAME                                 TYPE        VALUE 

    ------------------------------------ ----------- ------------------------------ 

    deferred_segment_creation            boolean     FALSE

    需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。
     

    考虑到有的库中表较多(例如我接触到的某一个库有7000+张表手动分析每一张表起来较为繁琐,后期将发布一个java脚本用于自动分析表(本文中两种方法为参考其他博主资料)

  • 相关阅读:
    文件IO流
    ArrayList LinkedList vector的区别
    双例集合Map,HashMap常用方法及源码分析
    单例集合List和Set
    集合与数组
    自然排序与定制排序
    String StringBuffer StringBuilder
    String与其他结构的转化
    线程的通信
    死锁,同步锁
  • 原文地址:https://www.cnblogs.com/joyanli/p/13221055.html
Copyright © 2020-2023  润新知