Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Coalescing Empty SPace in a Data Block
On Fri, 05 Sep 97 16:55:20 PDT, BJSIEBEN_at_bcsc02.gov.bc.ca (Barry Sieben) wrote:
>
>
>Does anyone know how/if you can force Oracle to colesce the empty
>space within a data block? We are able to coalesce empty blocks
>within a segment, but how does Oracle (specifically smon) know if/when
>to coalesce empty contiguous space within a data block?
>
>
>
From the server concepts manual (chapter on Data blocks, extents, segments)
<quote>
Released space may or may not be contiguous with the main area of
free space in a data block. Oracle coalesces the free space of a data
block only when an INSERT or UPDATE statement attempts to use a
block that contains enough free space to contain a new row piece, yet
the free space is fragmented so that the row piece cannot be inserted in
a contiguous section of the block. Oracle does this compression only in
such situations so that the performance of a database system is not
decreased by the continuous and unnecessary compression of the free
space in data blocks as each DELETE or UPDATE statement is issued.
</quote>
SMON doesn't do this compression, but rather the backend writing to the block in the cache will do it as it needs to (when free space exists sufficient to hold the update or the row but the free space is not contigous on the block).
the only way I am aware of to force this compression is to EXPort the data and IMPort it back in (rebuild the table).
>
>
>
>
>Regards,
>Barry Sieben, OSG, ITSD | Voice: (250) 387-9394
>3Gr/E317, 4000 Seymour Place | Fax: (250) 387-5766
>Victoria, BC, V8X 4S8 | IN: bjsieben_at_bcsc02.gov.bc.ca
Thomas Kyte
tkyte_at_us.oracle.com
Oracle Government
Bethesda MD
http://govt.us.oracle.com/ -- downloadable utilities