Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: When will Oracle reuse free space created with deletes
Okay. In the small number of rows example you've presented, you're likely
working entirely within a single block. There is no guaranteed order of
insertion in a block and no guaranteed order of use of blocks. In practice
with the current implementations you're seeing Oracle find a space in the
current insert block that sweetly fits the chunk you're shoving in, so it
uses it.
You could get some additional information from http://integrid.info/Poder_Freelists_vs_ASSM.ppt
which Tanel Podel (with a cooler character set than I'm using that's spelled slightly differently) kindly posted a while ago in another thread on this list. It is an excellent presentation that has precision in terminology and the order of operations of how Oracle handles free space, and highlights the contrasts between freelist management and ASSM management.
mwf
-----Original Message-----
From: oracle-l-bounce_at_freelists.org
[mailto:oracle-l-bounce_at_freelists.org]On Behalf Of
ryan_gaffuri_at_comcast.net
Sent: Friday, August 27, 2004 10:02 AM
To: oracle-l_at_freelists.org
Subject: When will Oracle reuse free space created with deletes
Been playing around.... When will Oracle attempt to reuse the space freed up
by deletes? Seems like Oracle tends to insert farther down the heap, even if
there is free space at the head of the table?
Please see below?
rgaffuri> create table x (y number);
Table created.
rgaffuri> insert into x values(1);
1 row created.
rgaffuri> insert into x values(2);
1 row created.
rgaffuri insert into x values (3);
1 row created.
rgaffuri> select y from x;
1 2 3
2 3
2 3 4
![]() |
![]() |