deferred_segment_creation 延迟段创建是11.2的新特性, 当创建一个 空表或者空分区时,实际的表段table segment被延迟到第一行数据插入的时候。 该功能通过DEFERRED_SEGMENT_CREATION参数启用,默认为TRUE. 由DEFERRED_SEGMENT_CREATION启用的新的空间分配方式的优势在于: 若系统安装后存在大量空表,而这些空表将从不会加载任何数据;假设一个空表占用64k(db_block_size=8,一个extent)的空间,则若存在一万张这样的空表 就要消耗625M的空间 当应用程序初次安装需要创建大量空表时,因为延迟了数据段创建的过程,所以可以节约大量时间 当向这些空表或者空分区插入第一行数据时,对应的表、LOb字段和索引的segment段会被创建。 在段创建过程中,相关表上的游标将失效invalidation。 官方认为在这里游标失效对性能的影响很小。 而且需要注意的使用deferred_segment_creation=true的情况下,更应当注意表空间的使用率,说不定哪一天这些空表全被用上了,哪就有点老母鸡变鸭了。 可以通过dba_tables、dba_indexes视图的SEGMENT_CREATED 字段确定该对象的 段是否被创建了。 SQL> select distinct segment_created from dba_tables; SEG --- NO YES N/A
本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/1277738