Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: analyze problems

Re: analyze problems

From: Howard J. Rogers <howardjr_at_www.com>
Date: Tue, 30 Jan 2001 07:01:03 +1100
Message-ID: <3a75cbc9@news.iprimus.com.au>

As a general rule, if an application has been written with rule-based optimisation in mind, it's extremely brave to suddenly move all the goalposts and start asking it to respond well under cost-based optimisation (though if you're 'tuning a query', it sounds like this is not applicable in your case).

Developers knew the 15 rules involved, and tweaked their code accordingly. With cost-based, only Oracle knows what the rules are at any one point in time!

All I can say is that it sounds like your application works fine under rule-based, and perhaps it's best left that way. You're going to have an interesting time upgrading to newer versions of Oracle, however! (I seem to recall Oracle as being on record somewhere that the future is cost-based, and rule-based will die in a future version).

There are one or two things you could tweak to see whether you can get any better performance out of cost-based: is multi-block read set correctly, for example (if set to high, the optimizer thinks full tablescans are really, really cheap, and merrily scans every thing rather than opt for index access)? Is your data skewed? And if so, did you calculate statistics for individual columns, and thus generate histograms? "Select * from emp where gender='F'" might sound like a job for a full-table scan -except that this particular EMP table belongs to the Army's database, and accordingly, there are 97% 'M', and only 3% 'F', so an index scan would have been more efficient -that sort of skew needs addressing with histograms.

Just some thoughts
HJR Rocr <rolland.cright_at_pwgsc.gc.ca> wrote in message news:953oqq$4ji1_at_shark.ncr.pwgsc.gc.ca...
> Thanks Mark,
>
> The optimizer is set to CHOOSE(if there are stats it will use the cost
> based mode otherwise it will use the rules based) I initially ran stats
 on
> just 2 tables(the ones that were involved in a query that I was tuning).
> Once performance problems began to show themselves (after 1 week of the
> initial stats run on the two tables) I removed the stats and the
 performance
> returned to the old levels.
>
> I then ran stats on the entire schema COMPUTE and I found the same
 problems.
>
> Any ideas?
>
> "Mark D Powell" <markp7832_at_my-deja.com> wrote in message
> news:94s7jd$ta6$1_at_nnrp1.deja.com...
> > In article <94rsuf$kg1_at_shark.ncr.pwgsc.gc.ca>,
> > "Rocr" <rolland.cright_at_pwgsc.gc.ca> wrote:
> > > oracle 7.3.4
> > > HP-UX B.10.20
> > > I ran the analyze table command on a few tables(3 of 300). Over time
 (1
> > > week) the system degrade to unacceptable levels(slow response times to
> > > database access).
> > > I removed the stats and the application ran well(response times
 acceptable).
> > > Anyone know why?
> > >
> > > rocr
> > >
> > By removing the stats you probably told the rdbms to run the queries
> > using the rule based optimizer instead of the cost based optimizer,
> > CBO. The CBO was making bad choices. Your analyze may have used too
> > small a sample size to generate good statistics, 2- caught the tables
> > in question at a bad point in time (since a week had to go by before
> > things got bad) or 3- involved too few tables. If the tables you
> > analyzed are involved in joins and the other tables had no statistics
> > then the CBO would just make a lot of assumptions about the data. The
> > assumptions could easilty be wrong.
> > --
> > Mark D. Powell -- The only advice that counts is the advice that
> > you follow so follow your own advice --
> >
> >
> > Sent via Deja.com
> > http://www.deja.com/
>
>
Received on Mon Jan 29 2001 - 14:01:03 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US