一:背景引入

oracle11g用exp命令导出数据库表时,有时会发现只导出了一部分表时而且不会报错,原因是有空表没有进行导出,之前一直没有找到方法于是用最笨的方法重新建这些空表,当然在我们实际当中表的数量大时我们该怎么办??? oracle10g版本中没有这样的问题。

于是查资料发现oracle11g有个新特性,增加了一个新特性 "deferred_segment_creation" 含义是段延迟创建,默认是true。

具体是什么意思呢?我们来解释下:

如果这个参数设置为true,你新创建了一个Table,并且没有向其中插入数据,那么这个表不会立即分配extend,也就是不占数据空间,即表不分配segment以节省空间,所以这些表也没能导出来。在系统表user_tables中也可以看到segment_treated的字段里是“NO”或者“YES”说明了某张表是否分配了segment。说白了是为了可以节省少量的空间。

我所使用的解决方法:

        >>> 建对空表分配空间的SQL命令。

         1.查询当前用户下的所有空表,一个用户最好对应一个默认的表空间,命令如下:

     >SQL:  select table_name from user_tables where num_rows='0'

   2.根据上述查询的语句,可以构建针对空表分配空间的命令语句,具体如下;

   >SQL:select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null(注意:很多教程没有这里,这里是有可能位空的)

    

上述代码可产生批量的修改表extent的SQL语句(有多少张空表就产生多少条),我们只需要将其生成的所有sql代码全部执行,就可以给每一张已经存在的表来分配                segment,就OK了。

再用exp命令进行导出即可。

参考:http://blog.sina.com.cn/s/blog_5f0e9ca50101it7n.html

最新文章

  1. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q88-Q91)
  2. WPF:自定义路由事件的实现
  3. Nginx 利用 X-Accel-Redirect response.setHeader 控制文件下载
  4. 云端 Linux下安装 Java
  5. [LeetCode] Number of Islands II
  6. Python的getattr()
  7. iOS数据存取和对象序列化
  8. Verilog
  9. Low-poly低面建模(低像素多边形)
  10. HDU 5430 Reflect
  11. java读取网页
  12. Python之深浅拷贝&函数
  13. webpack模块化管理和打包工具
  14. Hive 配置
  15. MyCat配置详解
  16. 【AtCoder】CODE FESTIVAL 2017 qual A
  17. PHP 时间函数time、date和microtime的区别
  18. 02 JDBC相关
  19. Android系统版本与API等级对应关系表
  20. PAT甲 1048. Find Coins (25) 2016-09-09 23:15 29人阅读 评论(0) 收藏

热门文章

  1. server.xml 解析
  2. 我的linux一万小时
  3. Python上下文管理器
  4. CSS(CSS3)选择器(2)
  5. vuex的学习笔记
  6. 记一次sqoop同步到mysql
  7. 利用CSS3制作网页动画
  8. OC实现单选和多选按钮
  9. /var/spool/clientmqueue目录下存在大量文件的原因及解决方法
  10. css中的背景色渐变以及背景图的定位