Tuesday, April 8, 2014

export of partitioned tables from 10 to 11g resulted in huge increase in size


Observation :

performed completed export of 10g database to 11g Database using datapump utility. Some of the tablespaces are have default initial extent defined at database level. Due to this the import of objects lying under this tablespaces have grown hugely while importing.
 
e.g: Tablespace test has been created with default storage extents as 10g and any object create in this tablespace without nay storage clause has been allocated 64 KB. When this object is imported to 11g tablespace this object had been allocated a default of 8MB space even there is no data in this object.
 

Cause :

                10g

                The custom tablespaces in 10g are created with default initial extent size of database (64K by default for 10g) whereas the standard tablespaces are created with its own initial extent(Uniform) of 1MB. Each subpartition in custom tablespaces are created with a default initial extent of 64KB even there is no data in the database.

                11g

                Whereas the default initial extent size allocation for database from 11.2.0.2 is 8MB to improve performance. Hence as part of import the partitions created in custom tablespaces has picked up default value of 8MB for every empty sub partition created resulting in huge increase of database.

 

 

Solution:

                To prevent this default allocation we need set the hidden parameter _partition_large_extents to FALSE explicitly and then initiate the import.

 

Initial Extent Size of a Partition Changed to 8MB from 64KB After Upgrade to 11.2.0.2 or Later (Doc ID 1295484.1) explains on allocation of default size

 

I tested the scenario by creating one test partition with and without the init parameter and the results are as expected. I will include this step to my import process document.

1)      Create a empty table with partitions and it allocated 8MB ß Init parameter _partition_large_extents is not defined in pfile

2)      Set init parameter _partition_large_extents to FALSE and created a empty table with partitions in custom ts and it allocated only 64KB.

No comments:

Post a Comment

Your Comments on blog are strongly welcomed..