Indeed. I think it's no coincidence that the two first letters of "BCHR"
are "BC". It's slightly outdated, to say the least. That the two last
letters are "HR" is strange.
OK, enough playing around and confusing people, who actually just asked
a legitimate question:
Buffer Cache Hit Ratio was meant to show how much IO was satisfied in
memory compared to how much IO had to be gotten on disk. So the formula
is something like (number of blocks found in memory)/(number of blocks
not found in memory, but on disk) and then multiplied by this and that
until you had the percentage of IO's that were found in memory. That's
the BCHR.
It sounds so wonderfully attractive: If a lot of the stuff you need is
found in memory, then things are going well.
So some authors have almost made a living out of preaching "more cache,
more cache - the higher the BCHR, the better."
That's because it's such a neat idea: Of COURSE it's faster to locate
the data in memory than on disk, right?
Yes and no. A few things to consider:
1. Logical IO (found in memory) aka LIO is not very much faster than
Physical IO (found on disk) aka PIO. Cary Millsap found the difference
to be around x37 instead of the theoretical x10,000! That's due to the
overhead in Oracle, which in turn leads to all sorts of very good things.
2. If you have a high BCHR it could be because you're reading the same
block again and again, so the counter increases constantly. So what is
cool about reading the same block again and again? Nothing. It's waste
of work. But what happens to the BCHR? The counter goes up. That's why
(again Cary Millsap's words) a high BCHR is often a symptom of a system
with really badly written SQL!
3. The BCHR represents one big summary of all sorts of LIO's, block
types, and what have you. LIO's are not just LIO's anymore, and sooner
or later you'll need to deal with them.
Best regards,
Mogens
Mladen Gogala wrote:
On 05/28/2004 10:45:39 AM, Reginald.W.Bailey@xxxxxxxxxxxx wrote:
Mladen:
What is BCHR?
Reginald, I apologize for making a jovial reference without explaining it. BCHR stands for
"Buffer Cache Hit Ratio" and is sometimes used as an ultimate measure of system performance,
much in the same fashion as when witch doctors predict weather. This measure was originally
introduced by Oracle, who even devoted a chapter the tuning book devoted to tuning the
BCHR. There were 2 tables (one of them was X$KCBCBH and I forgot the name of the other one)
which DBA was supposed to use to get the BCHR sufficiently high. The whole alchemy went on
until another esteemed member of this list, Mr. Anjo Kolk, asked a completely illogical and
outrageous question: how do you tune an application, if you don't know what the application
is waiting for and how the time is spent? He also developed so called "wait interface" and there was a very thick document, available on Metalink, describing oracle wait events for Oracle7. The whole philosophy was taken to the new heights by Cary Millsap in his book "Optimizing Oracle Performance".
---------------------------------------------------------------- Please see the official ORACLE-L FAQ: http://www.orafaq.com ---------------------------------------------------------------- To unsubscribe send email to: oracle-l-request@xxxxxxxxxxxxx put 'unsubscribe' in the subject line. -- Archives are at //www.freelists.org/archives/oracle-l/ FAQ is at //www.freelists.org/help/fom-serve/cache/1.html -----------------------------------------------------------------