Skip to Main Content

Breadcrumb

Question and Answer

Tom Kyte

Thanks for the question, cosmin.

Asked: April 20, 2004 - 11:37 am UTC

Last updated: April 26, 2004 - 12:15 pm UTC

Version: 9.0.4

Viewed 1000+ times

You Asked

hi Tom,
we have upgraded our system from 8i to 9i, the latest release and, while we're still working out some kinks, we see a tremendous performance gain (10x ...20x).

Currently we're running on a Linux x86 box a pretty large database (of billions of records) and while everything is fine at the moment, I fear when many more users get on, performance will drop. In the upgrade process, we've converted a lot of thin/huge tables to partitioned/IOT tables to accomplish the speed feat.

The current x86 box has 4 gb ram however I don't believe we can currently get over 1.5 gb allocated to the buffers (1.7gb total to the SGA). Is this possible on 32 bit Intel hardware or is there an OS/hardware combination, other than the expensive Sun boxes where we could make use of a lot more available RAM?

...or perhaps we have to move one version up, to 10g, although I have not yet investigated clustering and how easily/cheaply this can be accomplished in the 32 bit world :-)

thx much for any feedback,
Cosmin

and Tom said...

you can do big sga's on linux.

</code> http://docs.oracle.com/docs/html/A97297_01/appc_ln.htm#sthref682 <code>

but -- in my experience, tuning is not done by the buffer cache, it is done by doing as little work as you really need.

Rating

  (3 ratings)

Is this answer out of date? If it is, please let us know via a Comment

Comments

thx much

cosmin, April 20, 2004 - 12:53 pm UTC

<<tuning is not done by the buffer cache, it is done by
doing as little work as you really need>>

that's the general idea, however when one does aggregates over aggregates over aggregates etc over tens of millions of records, it pays to have as much of that data cached. Admitedly, most of our processes do little physical reads and mostly consistent gets however there are some convoluted processes (including possible analytic functions) that span a wide dataset and that's our concern.


Tom Kyte
April 20, 2004 - 3:27 pm UTC

not necessarily.

in fact -- if you use parallel query, sometimes we do a checkpoint first (flush the cache) so we can just do reads instead of asking "hmm, is what we want in the buffer cache, if not go to disk"

cache is good, cache is a tool, cache is not the end all be all.


don't use a tool until need for tool is identified! (eg: don't take medicine until you get sick)

buffer cache advisory

cosmini, April 20, 2004 - 3:58 pm UTC

...the buffer cache advisory in OEM, at times (of heavy use, with more simultaneous users, some of which running batch processes) says we need an extra 500-700mb ram (on top of the 1.5gb already allocated, to attain much less physical reads. Other times it's OK. Nonetheless, the performance of our system under 9i is a magnitude faster than under 8i. I can only expect even faster performance under 10g but we're not there yet.

Would the "extended buffer cache" support degrade performance somewhat or make management that much harder that it should not be considered?

regarding your comments, true, "the proof is in the pudding". If I've learned one good thing on this site (and I've learned a lot of 'em!) is never to take anybody's word for granted but devise testing scenarios to prove or disprove ideas, myths, etc :-)

it still amazes me that so many Oracle authors nowadays still write things without backing them up ("hey, if you use a 16k block size you get 75% hit ratio but if you use a 32k block size you get 99% hit ratio") :-(

thx again, and will continue to do more testing...



Tom Kyte
April 21, 2004 - 11:56 am UTC

extended buffer cache is just a tad harder to set up -- i've not heard of it having a negative overall effect on performance from anyone.

lowered mapped base

Christo Kutrovsky, April 26, 2004 - 12:15 pm UTC

Just wanted to mention that there is another way to get more SGA (if you really thing it is needed), by lowering your mapped base address. You can get to 2.6 gb for SGA at the expense of having less *addressable* memory available for PGA. At least you can adjust where you want the boundery.

There are some great papers on metalink.