Saturday, May 19, 2012

Oracle tablespace space management

Prior to Oracle 8.1.5, there was only dictionary managed tablespaces.  Space in tablespaces is managed using a dictionary.  Space to be allocated causes row to be deleted from 1 data dictionary table and added to another, and de-allocated (reverse).  SQL executed by background process to get space is called recursive SQL.  An INSERT can trigger other recursive SQL.  Recursive SQL is expensive if frequent.  Updates to the data dictionary must also be serialized.

Oracle 8.1.5 intoduce locally managed tablespaces.  Instead of using data dictionary, it uses a bitmap stored in the data file to manage extent.  It speed up operation as manipulating bit has lower overhead.

No comments: