Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Why aren't these queries the same?
"damorgan" <damorgan_at_exesolutions.com> wrote in message
news:3C8943DC.E1B25D99_at_exesolutions.com...
> As long as you are looking to speed things up ... try replaeing count(*)
with
> count(1) or count(rowid).
>
> Daniel Morgan
>
>
>
> Ed Stevens wrote:
>
> > I'm going through a process of identifying our biggest I/O hogs and
working with
> > the devleopers to fix them. One statement has us stumped. The original
looks
> > like this
> >
> > select count(*)
> > from scott.table_a
> > where (trunc(sysdate) - trunc(scott.table_a.mod_date) >= 12)
> > /
> >
> > so what they are looking for are instances of mod_date that are 12 or
more days
> > old.
> >
> > We re-wrote the query to look like this
> >
> > select count(*)
> > from scott.table_a
> > where mod_date < (sysdate - 12)
> > /
> >
> > but they don't return the same results.
> >
> > I did confirm that trunc(sysdate) returned the same value as sysdate and
> > trunc(scott.table_a.mod_date) returned the same value as
scott.table_a.mod_date.
> >
> > --
> > Ed Stevens
> > (Opinions expressed do not necessarily represent those of my employer.)
>
Sorry, Daniel, but this is another of those myths...
Paul Received on Sat Mar 09 2002 - 14:26:19 CST