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

2003-01-22 Thread chao_ping
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.




Regards
zhu chao
msn:[EMAIL PROTECTED]
www.happyit.net
www.cnoug.org(China Oracle User Group)

=== 2003-01-22 00:33:00 ,you wrote£º===

Tablescans in Oracle 8 start with 4 current
gets (db block gets) on the segment header
block - in Oracle 9 tablescans start with
2 consistent gets on the segment header.

I can't tell you why you have 12 current gets
rather than 4 - but if the tests aren't identical,
the physical reads and extra current gets may
be related to delayed cleanout on a first read.



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 [EMAIL PROTECTED]
Date: 22 January 2003 07:42




-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: chao_ping
  INET: [EMAIL PROTECTED]

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: [EMAIL PROTECTED] (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).




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

2003-01-22 Thread Jonathan Lewis

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.14 CU gets per map block
9.22 CR gets per map block
9.02 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 [EMAIL PROTECTED]
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: [EMAIL PROTECTED]

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: [EMAIL PROTECTED] (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).