Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Select count(*) in Oracle and MySQL
"DA Morgan" <damorgan_at_psoug.org> schreef in bericht news:1192071204.229371_at_bubbleator.drizzle.com...
> fitzjarrell_at_cox.net wrote:
>>> On Oct 10, 7:44 am, bhonaker <bhona..._at_gmail.com> wrote: >>> >>> >>> >>> >>> >>>> On Oct 10, 4:14 am, "Shakespeare" <what..._at_xs4all.nl> wrote: >>>>> "Shakespeare" <what..._at_xs4all.nl> schreef in >>>>> berichtnews:470c859a$0$240$e4fe514c_at_news.xs4all.nl... >>>>>> "DA Morgan" <damor..._at_psoug.org> schreef in bericht >>>>>> news:1191949360.256259_at_bubbleator.drizzle.com... >>>>>>> richard.drouill..._at_gmail.com wrote: >>>>>>>> On Sep 19, 2:40 pm, Occidental <Occiden..._at_comcast.net> wrote: >>>>>>>>> I have a table with about 250M rows, implemented in both Oracle >>>>>>>>> and >>>>>>>>> MySQL. >>>>>>>>> Select count(*) in MySQL is effectively instantaneous, presumably >>>>>>>>> because it accesses some internal count that is maintained by the >>>>>>>>> DBMS. The same query in Oracle takes about 6 minutes, pretty >>>>>>>>> obviously >>>>>>>>> becasue it counts rows. The Oracle table should have been set up >>>>>>>>> with >>>>>>>>> a primary key, but wasn't. The MySQL table has no primary key >>>>>>>>> either. >>>>>>>>> Any comments? >>>>>>>> Oracle recommends using count(rowid) instead of count(*) for >>>>>>>> performance reasons, I think you'll find this much faster. >>>>>>>> http://www.thewellroundedgeek.com/2007/09/most-people-use-oracle-coun... >>>>>>>> - Rich >>>>>>> Oracle doesn't recommend it ... you do. And in doing so you are >>>>>>> incorrect. >>>>>>> You should remove the recommendation from the website. >>>>>>> -- >>>>>>> Daniel A. Morgan >>>>>>> University of Washington >>>>>>> damor..._at_x.washington.edu (replace x with u to respond) >>>>>>> Puget Sound Oracle Users Group >>>>>>> www.psoug.org >>>>>> In 11g, there seem to be differences in performance with count(*) and >>>>>> count(1), but only in rare cases like after adding a column to a >>>>>> view, >>>>>> IIRC. Have seen some article about that, I'll try to look it up (but >>>>>> maybe >>>>>> this WAS the quoted article). Count(rowid) is a bad idea for views >>>>>> BTW. >>>>>> Shakespeare >>>>> And here's the article. Not a perfomance issue, but still different >>>>> behaviour:http://www.pythian.com/blogs/627/oracle-11g-unexpected-difference-bet... >>>>> Shakespeare >>>> The blog entry Rich linked to is in fact his own posting; what is >>>> interesting is that in the blog he correctly identifies the book >>>> "Oracle Press Book: Oracle 10g: SQL" as the source, while here he >>>> attributes this "fact" to Oracle. >>>> Brian- Hide quoted text - >>>> - Show quoted text - >>> I find no such attribution in that blog post. >>> >>> David Fitzjarrell- Hide quoted text - >>> >>> - Show quoted text - >>
>>
>>
>>
>>
>>
>> >>
>>
>> >>
> > And if I may be allowed to present a dose of reality to this thread: > http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1156159920245 > -- > Daniel A. Morgan > University of Washington > damorgan_at_x.washington.edu (replace x with u to respond) > Puget Sound Oracle Users Group > www.psoug.org
The invalidated view still stands....
Shakespeare
(What's in a count?)
Received on Thu Oct 11 2007 - 07:18:11 CDT