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: Re: same sql: different db block gets in different oracle version

Re: Re: same sql: different db block gets in different oracle version

From: Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk>
Date: Wed, 22 Jan 2003 08:14:15 -0800
Message-ID: <F001.00537703.20030122081415@fatcity.com>

One reason for seeing more db_block_gets than you expect on a full segment scan
is that every extent map block (of which the segment header block is just one)
is accessed differently. If you have small extents and large objects, you may have
overshoot the maximum extents allowed
in the segment header block - so the 12
db_block_gets could indicate 2 extra
map blocks.

NOTE - Oracle 9 simply does not do
4 CU gets on map blocks.

8.1    4 CU gets per map block
9.2    2 CR gets per map block
9.0    2 gets, but can't remember if they are CU or CR

Also - bigger tables => more map blocks may have been used

Regards

Jonathan Lewis
http://www.jlcomp.demon.co.uk

Coming soon a new one-day tutorial:
Cost Based Optimisation
(see http://www.jlcomp.demon.co.uk/tutorial.html )

Next Seminar dates:
(see http://www.jlcomp.demon.co.uk/seminar.html )

____England______January 21/23
____USA_(CA, TX)_August

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

-----Original Message-----
To: Multiple recipients of list ORACLE-L <ORACLE-L_at_fatcity.com> Date: 22 January 2003 15:47
version

Jonathan Lewis,
Thanks very much for your reply. Yes, in oracle 8i on sun solaris, the db block gets of fulltable scan is always 4block, no matter what the size of the table is. But in my tests in linux/817, it always show 12(8170 and 8172).I run the full scan again and again, but the value does not change.
And another problem is why in oracle9i, there is no db_block_gets when doing full segment scan.I checked asktom.oracle.com, but unable to find the answer. And i also tested 9.0.1 on sun solaris , when very small, db_block_gets is 6,while larger tables(12K records from dba_tables), db_block_gets is 12.
Scanning the segment header caused the current mode read,is it because of scanning the buffer pool head and getting the cache buffer chains latch in exclusive mode,and the buffer head will be moved the other end lru list? why scanning the other data block does not cause the current read? Sorry, I asked to much, and maybe they are meanless, but if possible, I still want to know.

Sony kristanto, what kind of parameters do you think will affect the db_block_gets? I will post them.

        Thanks.

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Jonathan Lewis
  INET: jonathan_at_jlcomp.demon.co.uk

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L

(or the name of mailing list you want to be removed from). You may
also send the HELP command for other information (like subscribing).
Received on Wed Jan 22 2003 - 10:14:15 CST

Original text of this message

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