zoukankan      html  css  js  c++  java
  • 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脚本用于自动分析表(本文中两种方法为参考其他博主资料)

  • 相关阅读:
    影院售票系统
    返璞归真
    【C++】【STL】【map】基础知识干货
    书签-技术类
    正则表达式-正则表达式校验金额最多保留两位小数
    winCommand-cmd杀死进程
    idea快捷键-总结
    接口封装-泛型方法、泛型接口、lambda表达式【类似ios传递block】
    treeMap-get返回null,因为比较器出问题
    git-linux一个月更新80万行代码,如何保证项目稳健?
  • 原文地址:https://www.cnblogs.com/joyanli/p/13221055.html
Copyright © 2011-2022 走看看