Re: JDBC connection pool and logon triggers

  • From: Mogens Nørgaard <mln@xxxxxxxxxxxx>
  • To: oracle-l@xxxxxxxxxxxxx
  • Date: Tue, 01 Jun 2004 03:11:54 +0200

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 -----------------------------------------------------------------

Other related posts: