On 04/03/2005 08:04:27 PM, Tom Lane wrote:
"Karl O. Pinc" <[EMAIL PROTECTED]> 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.

Makes sense. Thanks. (Makes me think that these sorts of arrays should be implimented with an extra level of indirection, an array of pointers to the varying data, which may not be the best way to represent arrays on disk because storage requirements go up and disk is slow.... Anyhow, I leave it to the coders.)

Karl <[EMAIL PROTECTED]>
Free Software:  "You don't pay back, you pay forward."
                -- Robert A. Heinlein



---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
   (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to