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

Home -> Community -> Mailing Lists -> Oracle-L -> Re: Clustering factor smaller than table blocks.

Re: Clustering factor smaller than table blocks.

From: Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk>
Date: Wed, 27 Sep 2006 10:03:27 +0100
Message-ID: <013301c6e213$cbb6d210$0300a8c0@Primary>

One possibility relates to ASSM - you can have blocks below the highwater mark that are not yet formatted. I'd have to check, but I don't think they get recorded as EMPTY_BLOCKS.

The rather more surprising thing about your example is that you have done a compute, so the results should be accurate, but you have 36,364 rows in the table and only 36,112 entries in what we guess is the primary key index. Do you have a corrupt index perhaps ?

Regards

Jonathan Lewis
http://www.oracle.com/technology/community/oracle_ace/ace1.html#lewis

The Co-operative Oracle Users' FAQ
http://www.jlcomp.demon.co.uk/faq/ind_faq.html

Cost Based Oracle: Fundamentals
http://www.jlcomp.demon.co.uk/cbo_book/ind_book.html

I have a table with 368 blocks, no free blocks, and the clustering factor of the primary key is 345. how is it possible?

I thought that CF will give you the amount of table blocks that an index will need to access for a given rowset. Something like  smallest( table blocks, ceil( (CF/tot table rows)*rowset/avg rows per block)) (real formula must be much complicated.

However if I have an avg ro

Here are the brute facts:

select EMPTY_BLOCKS,AVG_SPACE_FREELIST_BLOCKS ,NUM_FREELIST_BLOCKS

          from dba_tables where table_name = 'CUSTOMERS' and owner =
'SOE' ;
EMPTY_BLOCKS AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS

------------ ------------------------- -------------------
           0                         0                   0


The table was analysed with dbms_stat, percent = 100:

exec dbms_stats.gather_table_stats( ownname=>'SOE', tabname=>
'CUSTOMERS', Degree=> 4, estimate_percent=> 100, granularity=>'ALL',
cascade=>TRUE, stattab=>'sm_stattab', statid=>'CUSTOMERS09270906', statown=>'SOE')

Table name                          Owner         NUM_ROWS     BLOCKS
Size (m) LAST_ANALYSED
------------------------------ ---------------- ---------- ----------
--------  ------------------- 
CUSTOMERS                      SOE                   36364        368
3 09/27/2006 08:39:50

But still the clust factor reported by dba_indexes for CUSTOMERS_PK is inferiors to CUSTOMERS block count.

Table                Index                            Column
Clust   Distinct
Name                 Name                           U Name
Factor       Keys   NUM_ROWS
-------------------- ------------------------------ -
-------------------- ---------- ---------- ----------
CUSTOMERS            CUSTOMERS_PK                   U CUSTOMER_ID
345      36112      36112

This is oracle 10.1.0.4

B. Polarski


No virus found in this incoming message. Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.12.9/457 - Release Date: 26/09/2006

--
http://www.freelists.org/webpage/oracle-l
Received on Wed Sep 27 2006 - 04:03:27 CDT

Original text of this message

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