On Wed, 23 Dec 2009 01:09:40 +0100 Ivan Sergio Borgonovo <m...@webthatworks.it> wrote:
> On Wed, 23 Dec 2009 00:00:31 +0100 > Ivan Sergio Borgonovo <m...@webthatworks.it> wrote: > > > On Tue, 22 Dec 2009 20:47:18 +0100 > > Pavel Stehule <pavel.steh...@gmail.com> wrote: > > > > > Hello > > > > > > I found one ugly trick. You can multiply lines and SUM > cons > > > could be replaced limit clause: > > > > The trick is really smart (and fun), kudos, really, it's always a > > pleasure to read your solutions, thanks. > > > > But as expected: > > as unexpected... As even more unexpected... when all row are >0 and most of them are equal to 1 the generate_series performs appreciably better (roughly 15% faster). And I think your version can be further optimised: select count(*) from (select (generate_series(1,a))::int from data limit 90000000) s; This perform 30% faster. So what's so slow in the plpgsql version? Fortunately as expected when "enough" rows are >1 the for loop solution perform much better. -- Ivan Sergio Borgonovo http://www.webthatworks.it -- Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql