Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Inserts and row chaining

Re: Inserts and row chaining

From: Jonathan Lewis <ora_mail_at_jlcomp.demon.co.uk>
Date: 1997/01/18
Message-ID: <32E12367.5438@jlcomp.demon.co.uk>#1/1

Brett wrote:

> Chuck, thanks for your reply. However, I am still a little unclear.
> Lets say I have a 100-byte row that I wish to insert and the next
> block on the freelist will exceed (or go under) the PCTFREE value
> in 75 bytes. My boss insists that Oracle will place 75 bytes into
> this block and 25 into the following block. I cannot believe Oracle
> would do that because we would have chained rows all over the place.
>

100 bytes to insert. 75 bytes left below free list limit.

Oracle will take the block off the head of the free list, and try to insert the row into the next block on the free list.

If the next block does not have 100 bytes free, it will be dropped off the free list too, as will the third block.

After three blocks, Oracle will up the high water mark on the segment (allocating a new segment if need be) and put the next 5 unused blocks at the head of the free list. This will allow the row to be inserted.

As a consequence, if the row contains a long which can't fit into a single block, then Oracle will start the row in a new block, and continue it into the enxt few new blocks, leaving the final block (if there is space left in it) at the head of the free list.

:::

Information correct as at 7.1.6

---
Jonathan Lewis
Received on Sat Jan 18 1997 - 00:00:00 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US