Leng,

I am going to have to defer to others on the freelist algorithm. I have not done any 
examination/testing and don't want to make assertions that would cause more problems.

Daniel

"Kaing, Leng" wrote:

> Hi Daniel,
>
> Thank you so much for solving part of the mystery. This is the best explanation I've 
> got yet. I think you may be right. Our avg. row len. is more than 5K and our 
> database is 8k block. I can't believe that the 1G is spread EVERY single 4G block. 
> So how does Oracle determine which 5 blocks to check first before giving up, or is 
> it just a random sample and it happens be those half filled?
>
> We may have to build a special 16K block database just for this table in the end. 
> Now I see why we need 9I :-} But upgrading is probably not an option at the moment.
>
> Thank you!!
>
> Leng.
>
> -------------------
>
>  From: Daniel Fink <[EMAIL PROTECTED]>
>  Date: Wed, 01 Oct 2003 07:53:14 -0600
>  Subject: Re: Table not reusing deleted space
>
> This is a multi-part message in MIME format.
> --------------D366F924536517C4833C5849
> Content-Type: text/plain; charset=us-ascii
> Content-Transfer-Encoding: 7bit
>
> Leng,
>
> I recall a similar scenario some months ago. It had to do with the average row size 
> (quite large) and the block size. The average row size was just under 1/2 of the 
> block size, so the chances of a new row finding a spot in an existing block was 
> slim. Add in that there is a limit (5 I think) of blocks on the freelist that a 
> transaction will attempt to allocate space in before it says "I can't find a block 
> with enough free space so I'm going to
> allocate a new extent.". I think we looked at dba_tables.avg_row_len and 
> dba_tables.avg_space_freelist_blocks. (?) A quick calculation (1048576k /200000) 
> indicates that your average row length is over 5k. If you have 8k blocks, this means 
> an average of 1 row per block (perhaps less depending on the variance in row length).
>
> Daniel Fink
>
> "Kaing, Leng" wrote:
>
> > Hello everyone,
> >
> > Env: 8.1.7.4, SunOs 5.8 64 Bit
> >
> > We seem to hitting bug 1262161. The bug seems to imply that tables with triggers 
> > behind them do not reuse blocks on the freelist. We have a table that should only 
> > use 1G (num_rows * avg_row_len), but is actually using 4.1G and growing in size!! 
> > It is subject to high inserts, deletes and updates. But the resultant number of 
> > rows is around 200K rows. The insert is just a normal insert, no APPEND hint is 
> > used. Updates do not really expand the rows.
> >
> > We've changed PCTUSED from 40 to 70 to no avail. The table does not seem to reuse 
> > the deleted space.
> >
> > In trying to prove this error in our environment I've created 5 test scenarios but 
> > was never able to reproduce the problem. It only exists on our production 
> > database. I'm stumped. Has anyone encountered this problem?
> >
> > Or can someone explain to me why our production database is not reusing the space 
> > deleted and placed back on the free list? I should also add that the table in 
> > question is a master table of a snapshot.
> >
> > TIA,
> >
> > Leng.
>
> ----------------------------------------------------------
> Leng Kaing
> Email: [EMAIL PROTECTED]
> Phone: +61-3-9203-7589
> Mobile: +61-417-371-348
begin:vcard 
n:Fink;Daniel
x-mozilla-html:FALSE
org:Sun Microsystems, Inc.
adr:;;;;;;
version:2.1
title:Lead, Database Services
x-mozilla-cpt:;9168
fn:Daniel  W. Fink
end:vcard

Reply via email to