From: | Andreas Gaab <A(dot)Gaab(at)scanlab(dot)de> |
---|---|
To: | pgsql sql <pgsql-sql(at)postgresql(dot)org> |
Cc: | Hans Joachim Münzer <H(dot)Muenzer(at)scanlab(dot)de> |
Subject: | unnesting of array of different size explodes memory |
Date: | 2011-04-13 09:15:38 |
Message-ID: | 48DA836F3865C54B8FBF424A3B775AF667239FFDEF@Exchange-Server |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Hi,
I need to sum up the elements of two arrays. Most arrays were of the same size, thus I just unnested the arrays in one table and grouped the results in a loop for every row. When two arrays of different size (1200 and 1300) were processed, the memory usage exploded and the query was killed by the kernel.
As I now understand, the following query leads to 12 results, not just 4 (or 3...):
SELECT unnest(ARRAY[1,2,3]), unnest(ARRAY[4,5,6,7]);
Why could postgres use as much memory till the kernel complained when unnesting 1200 and 1300 elements resulting in 1.6e6 rows. Are there settings to prevent this such as "work_mem"?
Regards,
Andreas
___________________________________________________________________________
SCANLAB AG
Dr. Andreas Simon Gaab
Entwicklung * R & D
Siemensstr. 2a * 82178 Puchheim * Germany
Tel. +49 (89) 800 746-513 * Fax +49 (89) 800 746-199
mailto:a(dot)gaab(at)scanlab(dot)de * www.scanlab.de<http://www.scanlab.de>
Amtsgericht München: HRB 124707 * USt-IdNr.: DE 129 456 351
Vorstand: Georg Hofner (Sprecher), Christian Huttenloher, Norbert Petschik
Aufsichtsrat (Vorsitz): Dr. Hans J. Langer
___________________________________________________________________________
Besuchen Sie uns auf der / Meet us at
LASER World of PHOTONICS 2011
Munich, Germany
May 23 - 26, 2011
Hall C2, Booth 461
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2011-04-13 14:52:32 | Re: unnesting of array of different size explodes memory |
Previous Message | Anish Kejariwal | 2011-04-12 17:08:25 | pass in array to function for use by where clause? how optimize? |