[postgis-users] Geomunion performance advice needed
pcreso at pcreso.com
pcreso at pcreso.com
Mon Sep 21 15:32:37 PDT 2009
Thanks Paul...
I sort of figured that would be the answer... But I think it will take longer to make that happen than to run my jobs...
One thing I'm considering is parallelising the generation of the intermediate polygons, so my list of X values is split 4 ways & I run it on 4 cores.
But I'll start off trying to get the upgrade started...
Thanks again,
Brent
--- On Tue, 9/22/09, Paul Ramsey <pramsey at cleverelephant.ca> wrote:
> From: Paul Ramsey <pramsey at cleverelephant.ca>
> Subject: Re: [postgis-users] Geomunion performance advice needed
> To: pcreso at pcreso.com, "PostGIS Users Discussion" <postgis-users at postgis.refractions.net>
> Date: Tuesday, September 22, 2009, 10:13 AM
> Upgrade. We're talking orders of
> magnitude here.
>
> P
>
> On Mon, Sep 21, 2009 at 3:03 PM, <pcreso at pcreso.com>
> wrote:
> >
> > Hi,
> >
> > I have a jopb which looks like taking 15 days...
> perhaps someone here has some ideas on how to speed things
> up.
> >
> > My query is intended to generate polygons from points
> with a depth attribute. I buffer the points so they all
> overlap & geomunion these into a single multipolygon. My
> base dataset is 155,000,000 points.
> >
> > As a single monolithic query, it works on smaller
> regions within the overall area, but slows down as the area
> of interest increases (as you'd expect). Based on tests I've
> done previously, a series of smaller areas processed
> sequenntially & then combined is faster than the
> monolithic approach.
> >
> > I have stored (& indexed) the X value of each
> point, so my script firstly generates a list of the X values
> within the user defined bounding box, then iterates through
> this list building a multipolygon for each longitude value,
> as below.
> >
> > psql -d $DB -qc "insert into depth_poly values
> > (
> > default,
> > 'TEMP',
> > '$USER',
> > $MINDEPTH,
> > $MAXDEPTH,
> > '$DESC',
> > (select
> multi(setsrid(buffer(geomunion(geom),0.0065,2)),4326)
> > from gebco_depths
> > where geom &&
> $ROSS_BOX
> > and x_val=$LON
> > and depth >=
> $MINDEPTH
> > and depth <=
> $MAXDEPTH)
> > );"
> >
> >
> > After this all the sub polygons are geomunion()-ed to
> generate a single multipolygon defining the regions between
> specified depths within the specified bbox. This can then be
> overlaid on administrative boundaries for various further
> assessments to be made.
> >
> > I'm not using current versions of PostGIS or Postgres
> (I'm not really in control of this), so I'm also interested
> in any suggestions as to how much impact an apgrade might
> make for this sort of query (based on my understanding of
> recent upgrades, this could be substantial).
> >
> > gebco08=# select postgis_full_version();
> >
> postgis_full_version
> >
> -------------------------------------------------------------------------------------
> > POSTGIS="1.3.3" GEOS="3.0.0-CAPI-1.4.1" PROJ="Rel.
> 4.6.1, 21 August 2008" USE_STATS
> > (1 row)
> > gebco08=# select version();
> >
> version
> >
> -------------------------------------------------------------------------------------------------------------------
> > PostgreSQL 8.1.11 on x86_64-unknown-linux-gnu,
> compiled by GCC gcc (GCC) 4.1.2 20070115 (prerelease) (SUSE
> Linux)
> > (1 row)
> >
> > Hardware is an 8 core Xeon 3Ghz server with 16Gb
> memory, & the queries are getting around 100% cpu on 1
> core.
> >
> > Any advice gratefully accepted.
> >
> > Brent Wood
> > _______________________________________________
> > postgis-users mailing list
> > postgis-users at postgis.refractions.net
> > http://postgis.refractions.net/mailman/listinfo/postgis-users
> >
>
More information about the postgis-users
mailing list