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

Home -> Community -> Usenet -> c.d.o.misc -> Re: count(rowid) vs count(*)

Re: count(rowid) vs count(*)

From: Robert Keller <rlkeller_at_yahoo.com>
Date: Tue, 13 Jul 1999 17:04:41 -0500
Message-ID: <378BB7F8.F9F35952@yahoo.com>


It is my understanding the the count(*) requires the sql parser to expand the '*' to column names before the actual count can take place. That is also why the practice of listing all column names instead of just the '*' to save this expansion of the '*'

Roger Jackson wrote:

> Andy,
>
> I would agree with you. I've actually also found that the Oracle DBA
> Certification Exam Guide, written by Oracle Press also specifies that you
> should use count(rowid) or count(1) instead of count(*).
>
> But it really doesn't explain why.
>
> It looks like I will have to do the tests myself.
>
> Andy Marden <amarden_at_altavista.net> wrote in message
> news:3789E2C0.F05EB6E6_at_altavista.net...
> > Tests that I ran - a while back now, must be on 7.1 I guess, showed
> > this to be untrue, and that count(*) performed better than count(1).
> > Maybe this has been optimised (it would make sense wouldn't it?)
> >
> > Andy
> >
> > Roger Jackson wrote:
> > >
> > > Hi,
> > >
> > > I was reading an article just recently which stipulated that you should
> not
> > > use count(*) to determine the number of rows in a table, but use
> count(1) or
> > > count(ROWID) instead. These options are faster because they bypass some
> > > unnecessary operations in Oracle's SQL processing mechanism.
> > >
> > > Can somebody explain to me why this would be faster and what mechanisms
> are
> > > bypassed.
> > >
> > > TIA
> > >
> > > Roger
Received on Tue Jul 13 1999 - 17:04:41 CDT

Original text of this message

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