Initial extent size when converting to partitioned table Initial extent size when converting to partitioned table oracle oracle

Initial extent size when converting to partitioned table


You can specify the storage clause for each partition:

create table t (  c1 int) storage ( initial 10m );insert into t with rws as (  select level x from dual  connect by level <= 5)  select x from rws;commit;alter table t modify   partition by range ( c1 )   interval ( 1 )  (    partition p1 values less than ( 2 )       storage ( initial 8k ),    partition p2 values less than ( 3 )       storage ( initial 64k ),    partition p3 values less than ( 4 )       storage ( initial 128k )  );  select partition_name, initial_extent from   user_tab_partitionswhere  table_name = 'T';PARTITION_NAME   INITIAL_EXTENT   P1                        16384 P2                        65536 P3                       131072 SYS_P42018             10485760 SYS_P42019             10485760 

Note you have to do this for all the partitions. The auto-created interval partitions will have the same initial as the original table. Any new partitions will also have this same initial size. You can change this with the modify default attributes clause:

insert into t values ( 6 );alter table t modify   default attributes storage ( initial 16k );insert into t values ( 7 );    select partition_name, initial_extent from   user_tab_partitionswhere  table_name = 'T';PARTITION_NAME   INITIAL_EXTENT   P1                        16384 P2                        65536 P3                       131072 SYS_P42018             10485760 SYS_P42019             10485760 SYS_P42020             10485760 SYS_P42021                16384