Re: why does count take so long?
Dennis Gearon <gearond@fireserve.net>
From: Dennis Gearon <gearond@fireserve.net>
To: Jean-Luc Lachance <jllachan@nsd.ca>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Greg Stark <gsstark@mit.edu>, pgsql-general@postgresql.org
Date: 2003-09-09T16:54:35Z
Lists: pgsql-general
Is improving count(*) <a lot if possible> on one of the TODO lists? Jean-Luc Lachance wrote: >How about keeping counts of inserts, deletes and updates per table per >transaction as part of the live statistics? > > > >Tom Lane wrote: > > >>I said: >> >> >>>Greg Stark <gsstark@mit.edu> writes: >>> >>> >>>>Things like count(*) could use int4 until it overflows though. >>>> >>>> >>>I don't see a reasonable way for an aggregate to change state datatype >>>on the fly; otherwise this would be a great solution. >>> >>> >>On the other hand, the cost is imposed by the generic aggregate >>definition that says the aggregate state transition function is an >>ordinary function. This is fine for user-defined aggregates, but there >>is no law that says that all the built-in aggregates must use that same >>API. We could probably invent some API that allows COUNT(*) to keep its >>running count someplace where it needn't be re-palloc'd on every cycle. >>Something to think about for 7.5 (too late for 7.4 I fear). >> >> regards, tom lane >> >>---------------------------(end of broadcast)--------------------------- >>TIP 2: you can get off all lists at once with the unregister command >> (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) >> >> > >---------------------------(end of broadcast)--------------------------- >TIP 8: explain analyze is your friend > > >