Re: short-cutting if sum()>constant
От | Ivan Sergio Borgonovo |
---|---|
Тема | Re: short-cutting if sum()>constant |
Дата | |
Msg-id | 20091223024635.48d66554@dawn.webthatworks.it обсуждение исходный текст |
Ответ на | Re: short-cutting if sum()>constant (Ivan Sergio Borgonovo <mail@webthatworks.it>) |
Ответы |
Re: short-cutting if sum()>constant
|
Список | pgsql-sql |
On Wed, 23 Dec 2009 01:09:40 +0100 Ivan Sergio Borgonovo <mail@webthatworks.it> wrote: > On Wed, 23 Dec 2009 00:00:31 +0100 > Ivan Sergio Borgonovo <mail@webthatworks.it> wrote: > > > On Tue, 22 Dec 2009 20:47:18 +0100 > > Pavel Stehule <pavel.stehule@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
В списке pgsql-sql по дате отправления: