Skip to Main Content
  • Questions
  • Migrating from smallfile tablespace to bigfile

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question.

Asked: July 29, 2016 - 12:33 am UTC

Last updated: August 09, 2016 - 3:48 am UTC

Version: 11.2.0.4

Viewed 10K+ times! This question is

You Asked

hi - we recently migrated our 11.2.0.4 database from a non rac to a rac system, so the tablespaces came as smallfile tablespaces. this is our platform database and a 24x7 oltp system. what is the best way to move them into bigfile tablespaces with minimum downtime ? we have been having some performance issues and the tablespace io stats indicate that the reads and writes are slower. do you think that will go away with the bigfile tablespace move ?

and Connor said...

I'd be *very* surprised if you saw any performance difference at all between smallfile and bigfile. It is simply a difference between how the rowid's are used to identify blocks.

Bigfiles are useful and convenient, but unless you have a desperate need to go with bigfiles, I would not bother.

Rating

  (2 ratings)

Is this answer out of date? If it is, please let us know via a Comment

Comments

How to Migrate to Big File Tablespace

Venkat, August 08, 2016 - 4:26 pm UTC

Hi,

My db is 11.2.0.4 and 2 node RAC cluster exadata db .
My tablespace size is 2TB and its production tablespace .
I want to migrate this tablespace to Big file tablespace .
Could you share me exact steps how to migrate to Bigfile tablespace with out impacting production.





Chris Saxon
August 09, 2016 - 2:49 am UTC

You would need to move each of the segments within this tablespace to the new tablespace. If you are looking to minimize/eliminate outage time, look at using DBMS_REDEFINITION.

Plenty of examples on the asktom site.

A reader, August 09, 2016 - 3:33 am UTC

I sometime confuse with big and small tablespace.
so
what is major difference between both?
and what's a performance can be get more compare to small tablespace?
Connor McDonald
August 09, 2016 - 3:48 am UTC

Performance-wise I dont think you will see any difference at all.

Two components of the rowid (the unique location of a row) are:

- the file the row is in
- the block number in that file.

The rowid is fixed in size, so that means there is a limit to the how high the block number can go, which means a cap on the size of the file (eg 32G for a 8k blocksize).

So if you wanted files bigger than 32G you are stuck. Then we invented bigfile tablespaces. They only allow 1 file per tablespace. So now we can use the bytes in the rowid that were originally used for the file number to allow for a larger block number. So the files can be much much larger.