Do need to break out an option per FeatureSource? Either by inserting
logic, or looking for settings in the table metadata?

The only other way I can think to get an option in is with a
Transaction.getProperty(key) - but that does not quite work since a
transaction is used for more than one feature source.

--
Jody Garnett

On 8 August 2015 at 02:43, Andrea Aime <[email protected]> wrote:

> Hi,
> it seems the usage of ST_Envelope(geom) might cause troubles after all,
> and we probably don't want that enabled by default (ufff....)
>
> I was playing with a China wide OSM download, and querying a small
> area on Hong Kong, after running "vacuum analyze", and ensuring
> the indexes are there, gives me the following:
>
> osm=# \timing
> Timing is on.
> osm=# SELECT
> "id","name",encode(ST_AsBinary(ST_Force_2D("geometry")),'base64') as
> "geometry" FROM "import"."osm_roads" WHERE  "geometry" &&
> ST_GeomFromText('POLYGON ((12686441.96088916 2574141.200893554,
> 12686441.96088916 2575819.375869846, 12688531.453260839 2575819.375869846,
> 12688531.453260839 2574141.200893554, 12686441.96088916
> 2574141.200893554))', 3857);
> Time: 1,649 ms
> osm=# SELECT
> "id","name",encode(ST_AsBinary(ST_Force_2D("geometry")),'base64') as
> "geometry" FROM "import"."osm_roads" WHERE  ST_envelope("geometry") &&
> ST_GeomFromText('POLYGON ((12686441.96088916 2574141.200893554,
> 12686441.96088916 2575819.375869846, 12688531.453260839 2575819.375869846,
> 12688531.453260839 2574141.200893554, 12686441.96088916
> 2574141.200893554))', 3857);
> Time: 1076,481 ms
>
> That is, wrapping the geometry with ST_Envelope makes the query 500 times
> slower... erk!
> I looked into it, and it seems that for this database wrapping with
> ST_Envelope makes the DB
> use sequential search:
>
>
> ----------------------------------------------------------------------------------------------
>  Seq Scan on osm_roads  (cost=0.00..122097.24 rows=229722 width=243)
>    Filter: (st_envelope(geometry) &&
> '0103000020110F00000100000005000000A09ABF3E8D32684146E1B6999EA34341A09ABF3E8D326841CC801CB0E5A64341E01C816E92336841CC801CB0E5A64341E01C816E9233684146E1B6999EA34341A09ABF3E8D32684146E1B6999EA34341'::geometry)
> (2 rows)
>
> whilst without ST_Envelope around, it's a index search:
>
>
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>  Bitmap Heap Scan on osm_roads  (cost=4.61..180.05 rows=42 width=243)
>    Recheck Cond: (geometry &&
> '0103000020110F00000100000005000000A09ABF3E8D32684146E1B6999EA34341A09ABF3E8D326841CC801CB0E5A64341E01C816E92336841CC801CB0E5A64341E01C816E9233684146E1B6999EA34341A09ABF3E8D32684146E1B6999EA34341'::geometry)
>    ->  Bitmap Index Scan on osm_roads_geom  (cost=0.00..4.60 rows=42
> width=0)
>          Index Cond: (geometry &&
> '0103000020110F00000100000005000000A09ABF3E8D32684146E1B6999EA34341A09ABF3E8D326841CC801CB0E5A64341E01C816E92336841CC801CB0E5A64341E01C816E9233684146E1B6999EA34341A09ABF3E8D32684146E1B6999EA34341'::geometry)
> (4 rows)
>
> So... I guess we should flip the sys var the other way? Or make it into
> a store parameter again (sigh)?
> I believe road networks are going to be more popular/common than
> datasets with huge polygons, that why I'm suggesting to turn it off
> by default.
>
> Cheers
> Andrea
>
> --
> ==
> GeoServer Professional Services from the experts! Visit
> http://goo.gl/it488V for more information.
> ==
>
> Ing. Andrea Aime
> @geowolf
> Technical Lead
>
> GeoSolutions S.A.S.
> Via Poggio alle Viti 1187
> 55054  Massarosa (LU)
> Italy
> phone: +39 0584 962313
> fax: +39 0584 1660272
> mob: +39  339 8844549
>
> http://www.geo-solutions.it
> http://twitter.com/geosolutions_it
>
> *AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*
>
> Le informazioni contenute in questo messaggio di posta elettronica e/o
> nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
> loro utilizzo è consentito esclusivamente al destinatario del messaggio,
> per le finalità indicate nel messaggio stesso. Qualora riceviate questo
> messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
> darcene notizia via e-mail e di procedere alla distruzione del messaggio
> stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
> divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
> utilizzarlo per finalità diverse, costituisce comportamento contrario ai
> principi dettati dal D.Lgs. 196/2003.
>
>
>
> The information in this message and/or attachments, is intended solely for
> the attention and use of the named addressee(s) and may be confidential or
> proprietary in nature or covered by the provisions of privacy act
> (Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
> Code).Any use not in accord with its purpose, any disclosure, reproduction,
> copying, distribution, or either dissemination, either whole or partial, is
> strictly forbidden except previous formal approval of the named
> addressee(s). If you are not the intended recipient, please contact
> immediately the sender by telephone, fax or e-mail and delete the
> information in this message that has been received in error. The sender
> does not give any warranty or accept liability as the content, accuracy or
> completeness of sent messages and accepts no responsibility  for changes
> made after they were sent or for other risks which arise as a result of
> e-mail transmission, viruses, etc.
>
> -------------------------------------------------------
>
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> GeoTools-Devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>
>
------------------------------------------------------------------------------
_______________________________________________
GeoTools-Devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to