日期:2014-05-17  浏览次数:21029 次

oracle 分区表分配的段为什么达到8M的空间
在同一个库,同一个表空间建立2张表,分区表分配的段为什么达到8M的空间


--01建表空间
CREATE TABLESPACE RETEK_DATA nologging
DATAFILE '/u01/app/oracle/oradata/rmsdb/retek_data01.dbf'  SIZE 2048M
    AUTOEXTEND ON NEXT 500M MAXSIZE 2048M
    EXTENT MANAGEMENT LOCAL
    SEGMENT SPACE MANAGEMENT AUTO;
--02建分区表
CREATE TABLE aaa
 (ITEM VARCHAR2(25) NOT NULL
 ,CREATE_DATETIME DATE NOT NULL
 ,LAST_UPDATE_DATETIME DATE NOT NULL
 ,LAST_UPDATE_ID VARCHAR2(30) NOT NULL
 ,LOC NUMBER(10,0) NOT NULL
 ,LOC_TYPE VARCHAR2(1) NOT NULL
 ,EOM_DATE DATE NOT NULL
 )
 TABLESPACE RETEK_DATA
 PARTITION BY RANGE(EOM_DATE)
 SUBPARTITION BY HASH(LOC)
 SUBPARTITION TEMPLATE
 (
SUBPARTITION S001 TABLESPACE RETEK_DATA
 )
 (
 PARTITION aaa_P1 VALUES LESS THAN (TO_DATE('31072004','DDMMYYYY')) TABLESPACE RETEK_DATA
 );

--03普通表
CREATE TABLE bbb
 (ITEM VARCHAR2(25) NOT NULL
 ,CREATE_DATETIME DATE NOT NULL
 ,LAST_UPDATE_DATETIME DATE NOT NULL
 ,LAST_UPDATE_ID VARCHAR2(30) NOT NULL
 ,LOC NUMBER(10,0) NOT NULL
 ,LOC_TYPE VARCHAR2(1) NOT NULL
 ,EOM_DATE DATE NOT NULL
 )
 TABLESPACE RETEK_DATA;



------解决方案--------------------
参考分区默认segment大小变化(64k—>8M)
在11.2.0.3(从11.2.0.2开始)创建分区表,每个分区默认大小为8M,是由_partition_large_extents参数控制,可以算是11.2.0.2开始的一个新特性,为了减少extent数量,提高分区表性能,而设置的一个参数,默认为true,即分区表的每个extent为8M,这里对于_partition_large_extents为true和false的情况进行了测试