Re: Strange plpgsql performance -- arithmetic, numeric() type, arrays

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Karl O(dot) Pinc" <kop(at)meme(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Strange plpgsql performance -- arithmetic, numeric() type, arrays
Date: 2005-04-04 01:04:27
Message-ID: 13767.1112576667@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

"Karl O. Pinc" <kop(at)meme(dot)com> writes:
> Incrementing the loop counter by a factor of 10, from 1000 to 10000
> makes the process take more than 100 times longer. (I only saw
> this happen when I happened upon using a numeric() datatype
> and then dividing i/100 to avoid overflow. It does not happen
> without the array and working with other, much larger, arrays
> of other data types you see no slowdown.)

It's the array access, not the arithmetic, that's getting you.
Since numeric is not a fixed-width datatype, accessing the N'th
element of the array requires O(N) time to find that element.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2005-04-04 01:49:49 Re: Question about format_type function
Previous Message Tom Lane 2005-04-04 01:02:18 Re: Strange plpgsql performance, diff plperl and plpgsql