11g参数之deferred_segment_creation
一个bool型的参数 ture/false 默认值为true,11g中才有的,算是一个新特性当这个参数设置为true时,当创建一个表的时候,不给它分配segment,即不分配空间,
只有当向这个表中插入第一条数据的时候才开始分配segment。优点是可以节省空间,但缺点是使用exp导出的时候,不会导出没有segment分配的表。使用expdp可以导出空表。
这个参数可以动态修改,使用
alter system/session set deferred_segment_creation=true/false;
更改后,之前延迟分配segment的表并不会受到影响,仍然为空表。
查询某schema中所有未分配segment的表可以使用以下语句
select * from user_tables where segment_created = 'NO'
若想为这些未分配segment的表分配空间,可以使用语句
select 'alter table ' || table_name || ' allocate extent;' from user_tables
where segment_created = 'NO'
之前一直以为11g 所有版本里面都是没有分配段的空表段都不能导,但是今天在本地发现我的11.2.0.4环境里面竟然EXP竟然可以导出空段表:

后来特意找了下苏州首富,首富发现他本地也有同样的情况,暂时我们怀疑只有在11.2.0.1上面才会有的这样的问题:




所以安装时一定不要随便找个版本如11.2.0.1,今天写个的缘由就是早上接到电话处理个xx证券估值系统主数据库备份导入到备数据库出现很多表丢失的情况。刚好版本就是11.2.0.1,这里就总结记录一下。
所以建议以后:
安装版本一定要找11.2.0.4版本的,一定要打上最新稳定的psu补丁,另外尽量用expdp来导数据,这个性能会比exp好很多。
能找恒生DBA安装的就不要自己安装,请记住恒生有个独立部门叫“恒生系统服务发展部”,专搞系统数据库的,里面有oracle mysql mogon redis sql server各种数据库专家。
更多精彩内容请关注恒生系统服务公众号"恒生DBA公社",另外也可以关注我的个人公众号"FigoNote".




