Return-Path: <ml-errors@fatcity.com>
Received: from air189.startdedicated.com (root@localhost)
 by orafaq.com (8.11.6/8.11.6) with ESMTP id hBIHuYa02826
 for <oracle-l@orafaq.com>; Thu, 18 Dec 2003 11:56:34 -0600
X-ClientAddr: 66.27.56.212
Received: from www3.fatcity.com (rrcs-west-66-27-56-212.biz.rr.com [66.27.56.212])
 by air189.startdedicated.com (8.11.6/8.11.6) with ESMTP id hBIHuUo02808
 for <oracle-l@orafaq.com>; Thu, 18 Dec 2003 11:56:30 -0600
Received: (from root@localhost)
 by www3.fatcity.com (8.11.6/8.11.6) id hBIHpBn25598
 for oracle-l@orafaq.com; Thu, 18 Dec 2003 09:51:11 -0800
Received: by fatcity.com (05-Jun-2003/v1.0g-b73/bab) via fatcity.com id 005DA53B; Thu, 18 Dec 2003 09:54:27 -0800
Message-ID: <F001.005DA53B.20031218095427@fatcity.com>
Date: Thu, 18 Dec 2003 09:54:27 -0800
To: Multiple recipients of list ORACLE-L <ORACLE-L@fatcity.com>
X-Comment: Oracle RDBMS Community Forum
X-Sender: Jared.Still@radisys.com
Sender: ml-errors@fatcity.com
Reply-To: ORACLE-L@fatcity.com
Errors-To: ML-ERRORS@fatcity.com
From: Jared.Still@radisys.com
Subject: RE: db block gets /consistent gets
Organization: Fat City Network Services, San Diego, California
X-ListServer: v1.0g, build 73; ListGuru (c) 1996-2003 Bruce A. Bergman
Precedence: bulk
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="=_alternative 006215E788256E00_="
--=_alternative 006215E788256E00_=
Content-Type: text/html; charset="us-ascii"


<br><font size=2 face="sans-serif">Mark,</font>
<br>
<br><font size=2 face="sans-serif">That is perhaps the most concise and easy to understand</font>
<br><font size=2 face="sans-serif">explanation of current mode vs. consistent mode that I have </font>
<br><font size=2 face="sans-serif">yet seen.</font>
<br>
<br><font size=2 face="sans-serif">Thanks for posting it.</font>
<br>
<br><font size=2 face="sans-serif">Jared</font>
<br>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td>
<td><font size=1 face="sans-serif"><b>&quot;Bobak, Mark&quot; &lt;Mark.Bobak@il.proquest.com&gt;</b></font>
<br><font size=1 face="sans-serif">Sent by: ml-errors@fatcity.com</font>
<p><font size=1 face="sans-serif">&nbsp;12/17/2003 11:24 PM</font>
<br><font size=2 face="sans-serif">&nbsp;</font><font size=1 face="sans-serif">Please respond to ORACLE-L</font>
<br>
<td><font size=1 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; To: &nbsp; &nbsp; &nbsp; &nbsp;Multiple recipients of list ORACLE-L &lt;ORACLE-L@fatcity.com&gt;</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; cc: &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; Subject: &nbsp; &nbsp; &nbsp; &nbsp;RE: db block gets /consistent gets</font></table>
<br>
<br>
<br><font size=2 face="Courier New">Syed,<br>
<br>
Oracle accesses blocks in one of two modes, current or consistent.<br>
<br>
A 'db block get' is a current mode get. &nbsp;That is, it's the most up-to-date<br>
copy of the data in that block, as it is right now, or currently. &nbsp;There<br>
can only be one current copy of a block in the buffer cache at any time.<br>
Db block gets generally are used when DML changes data in the database.<br>
In that case, row-level locks are implicitly taken on the updated rows.<br>
There is also at least one well-known case where a select statement does<br>
a db block get, and does not take a lock. &nbsp;That is, when it does a full<br>
table scan or fast full index scan, Oracle will read the segment header<br>
in current mode (multiple times, the number varies based on Oracle version).<br>
<br>
A 'consistent get' is when Oracle gets the data in a block which is consistent<br>
with a given point in time, or SCN. &nbsp;The consistent get is at the heart of<br>
Oracle's read consistency mechanism. &nbsp;When blocks are fetched in order to<br>
satisfy a query result set, they are fetched in consistent mode. &nbsp;If no<br>
block in the buffer cache is consistent to the correct point in time, Oracle<br>
will (attempt to) reconstruct that block using the information in the rollback<br>
segments. &nbsp;If it fails to do so, that's when a query errors out with the <br>
much dreaded, much feared, and much misunderstood ORA-1555 &quot;snapshot too old&quot;.<br>
<br>
As to latching, and how it relates, well, consider that the block buffers<br>
are in the SGA, which is shared memory. &nbsp;To avoid corruption, latches are <br>
used to serialize access to many linked lists and data structures that point<br>
to the buffers as well as the buffers themselves. &nbsp;It is safe to say that <br>
each consistent get introduces serialization to the system, and by tuning<br>
SQL to use more efficient access paths, you can get the same answer to the<br>
same query but do less consistent gets. &nbsp;This not only consumes less CPU,<br>
it also can significantly reduce latching which reduces serialization and<br>
makes your system more scalable.<br>
<br>
Well, that turned out longer than I planned. &nbsp;If you're still reading,<br>
I hope it helped!<br>
<br>
-Mark<br>
<br>
-----Original Message-----<br>
Sent: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Thu 12/18/2003 1:39 AM<br>
To: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Multiple recipients of list ORACLE-L<br>
Cc: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
Hi list,<br>
 <br>
What is db block gets and consistent gets.?<br>
How can I reduce consistent gets ?<br>
Ask Tom says each consistent gets is latch, how it could be?<br>
Thanks in advance<br>
 <br>
Syed<br>
 <br>
 <br>
 <br>
<br>
<br>
-- <br>
Please see the official ORACLE-L FAQ: http://www.orafaq.net<br>
-- <br>
Author: Bobak, Mark<br>
 &nbsp;INET: Mark.Bobak@il.proquest.com<br>
<br>
Fat City Network Services &nbsp; &nbsp;-- 858-538-5051 http://www.fatcity.com<br>
San Diego, California &nbsp; &nbsp; &nbsp; &nbsp;-- Mailing list and web hosting services<br>
---------------------------------------------------------------------<br>
To REMOVE yourself from this mailing list, send an E-Mail message<br>
to: ListGuru@fatcity.com (note EXACT spelling of 'ListGuru') and in<br>
the message BODY, include a line containing: UNSUB ORACLE-L<br>
(or the name of mailing list you want to be removed from). &nbsp;You may<br>
also send the HELP command for other information (like subscribing).<br>
</font>
<br>
<br>
--=_alternative 006215E788256E00_=--
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: 
  INET: Jared.Still@radisys.com

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@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).

