Sure, I'd love to comment...

1. If you can inexpensively cache your whole database working set in
memory, there's nothing wrong with doing that *unless* you could have
better spent the resources somewhere else to make a bigger positive
impact to the business (business = net profit & return on investment &
cash flow). Does it make a perceptible performance difference for you to
have your whole database in memory? I can't know without seeing a
profile of some of your key application sessions, but my experience over
a few hundred trace files recently tells me, "probably not."

<sidebar>Because of the masses of real-life field data we've seen over
the last two years of collecting people's 10046 trace files, I disagree
vehemently with the prediction that, "With 64-bit Oracle and terabytes
of cheap memory, tuning will be a thing of the past." Maybe tuning with
the buffer cache hit ratio will be a thing of the past (imho, it should
have become a thing of the past in 1992 when Oracle created 10046 data).
But 99%+ of the application inefficiencies that I see today will be *no*
faster--zero percent--when they're made memory-resident.</sidebar>

2. Having your entire database is in memory is no guarantee that your
users' performance will be adequate. We see lots of applications that do
*zero* PIOs, but that consume *hours* of 1GHz CPU time because they do
so many LIOs. ...Cache hit ratios at 100.0%, full-table scans at zero,
but performance at absolutely intolerable. The goal is not a bunch of
ratios in their "green zones." The goal is a system that provides
maximum business value.

3. It is the performance analyst's job to *know*your*business* well
enough to know where response time improvement will help the most. THE
SYSTEM CANNOT TELL YOU THIS. What if nobody's complaining about lousy
performance? Take a user to lunch. Buy someone a sandwich and ask the
simple question, "If I could make one thing faster today, what would
most improve your time on Earth with this application?" Every time you
ask this, a user will point your nose at Response Time. When you go back
to work after lunch, you had better *keep* your nose pointed at Response
Time. If you don't know how to measure or optimize Response Time, then
take Anjo or me to lunch (:\). Pursuing the optimization of *anything*
other than Response Time is reliable only in creating the illusion of
progress, if that. If you're not communicating with users and
specifically targeting their important Response Times, then you're not
optimizing performance.

4. Finally, there's no such thing as an app in which you have "no
control over the SQL." Even if you're still on RBO, you have some
control over the schema (ability create/drop/rebuild indexes). If you're
on CBO, you have absolute control over database statistics (I like
Jonathan Lewis' proposal: consider telling the database its statistics
[dbms_stats.set_%_stats] instead of asking it for them). With 8.1.6 and
above, you have stored outlines, which give you enormous control over
which plans the optimizer chooses (even with RBO, which we demonstrate
in our class). And with meaningful statistics to prove the case, I've
found vendors responsive to constructive suggestions that improve
performance of their products noticeably for their entire revenue base.


Cary Millsap
Hotsos Enterprises, Ltd.
http://www.hotsos.com

Upcoming events:
- Hotsos Clinic, Oct 1-3 San Francisco, Oct 15-17 Dallas, Dec 9-11
Honolulu
- 2003 Hotsos Symposium on OracleR System Performance, Feb 9-12 Dallas
- Next event: NCOAUG Training Day, Aug 16 Chicago



-----Original Message-----
Rich
Sent: Thursday, August 08, 2002 5:29 PM
To: Multiple recipients of list ORACLE-L

Hi Cary,

This comment made me think.  I agree in most cases, but what about a
very
small DB situation where the buffer cache is larger than all the tables
and
indexes combined (~300MB)?  This is for a 3rd party tool of which we
have no
control over the SQL.  I sized the buffer cache as a guesstimate of load
on
concurrent usage in the near future.  As it turns out, the amount of
data in
the DB seems to be relatively low, so theoretically, all accessed data
and
indexes could be buffered.

My kneejerk is that seems somehow wrong, but I can't think of a downside
offhand.  Care to comment?

Always willing to learn,
Rich Jesse                           System/Database Administrator
[EMAIL PROTECTED]              Quad/Tech International, Sussex, WI
USA

-----Original Message-----
Sent: Thursday, August 08, 2002 5:05 PM
To: Multiple recipients of list ORACLE-L

* If you have a really high database buffer cache hit ratio (>99%), then
you
almost certainly have inefficient SQL in your application.
 
Cary Millsap
Hotsos Enterprises, Ltd.
http://www.hotsos.com
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Jesse, Rich
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
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).

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

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
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).

Reply via email to