[postgis-devel] Try before you Buy
Bob and Deb
bobdebm at gmail.com
Thu Jan 22 00:37:21 PST 2009
Replying to myself :-) I figured it out. I used this query and got 12661
ms:
SELECT state,
SUM(ST_NPoints(the_geom)) As numpointsbefore,
ST_NPoints(_unite_garray_fast(st_geometryarray(the_geom))) As
numpointsafter
FROM usstatebounds
GROUP BY state
ORDER BY state;
On Thu, Jan 22, 2009 at 12:28 AM, Bob and Deb <bobdebm at gmail.com> wrote:
> Btw, I got 15849 ms when I ran this query:
>
> SELECT state,
> SUM(ST_NPoints(the_geom)) As numpointsbefore,
> ST_NPoints(ST_Union_Fast(the_geom)) As numpointsafter
> FROM usstatebounds
> GROUP BY state
> ORDER BY state;
>
> I was so excited to see unioncascade that I did not adjust my test server
> parameters. Fyi, my server is on a 1.83 Ghz duo core laptop with 2 gigs of
> mem running Ubuntu Hardy Heron.
>
> This machine also has the latest postgresql, postgis, and geos installed.
>
> GeoDB=# SELECT PostGIS_Full_Version();
> postgis_full_version
>
> ----------------------------------------------------------------------------------------
> POSTGIS="1.4.0SVN" GEOS="3.1.0-CAPI-1.5.0" PROJ="Rel. 4.6.1, 21 August
> 2008" USE_STATS
> (1 row)
>
>
> How do I use _unite_garray_fast(st_geometryarray(the_geom)) with the
> usstatebounds?
>
>
> On Wed, Jan 21, 2009 at 9:01 PM, Paul Ramsey <pramsey at opengeo.org> wrote:
>
>> All the pieces of the new super-fast cascaded geometry are now in SVN.
>> You'll need an absolutely fresh copy of GEOS to use them, but once you
>> do, you can run something like this:
>>
>> aggtest=# select
>> geometrytype(_unite_garray_fast(st_geometryarray(the_geom))) from
>> sample_poly;
>> geometrytype --------------
>> MULTIPOLYGON
>> (1 row)
>> Time: 23267.905 ms
>>
>>
>> note that
>> st_union() is still bound against the oldest implementation
>> st_union_fast() is bound against an implementation with slow
>> aggregation but fast GEOS union
>> _unite_garray_fast(st_geometryarray()) is the only way to get the
>> ultimate speed right now
>>
>> Unfortunately, it looks I'm going to need a special finalfunc for
>> every single aggregate that takes in the internal pointer to the
>> side-cache. That makes all the aggregates less pretty, since they
>> won't use function(geometry[]) as their finalfunc anymore. The
>> cleanest way would be to have those finalfuncs do little more than
>> call other functions.
>>
>> Mark, is there a prescribed way to call postgresql functions (ones
>> with (PG_FUNCTION_ARGS) as the argument) from other internal
>> functions?
>>
>> Paul
>> _______________________________________________
>> postgis-devel mailing list
>> postgis-devel at postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-devel
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-devel/attachments/20090122/8db8e8a1/attachment.html>
More information about the postgis-devel
mailing list