[mapserver-dev] Improving WFS GetFeature Performance
Seth G
sethg at geographika.co.uk
Mon Feb 24 03:47:41 PST 2020
Thanks Mike - it would be interesting if it did - when debugging it seems to be core mapquery.c code that defines the fields used.
Seth
--
web:http://geographika.co.uk
twitter: @geographika
On Fri, Feb 21, 2020, at 11:47 PM, Michael Smith wrote:
> IIRC, the oraclespatial driver does only fetch the required columns on
> the database query. I'll setup a test to verify.
>
> Mike
>
>
> --
> Michael Smith
> US Army Corps of Engineers
> Remote Sensing/GIS Center
>
>
> On 2/21/20, 5:40 PM, "mapserver-dev on behalf of Seth G"
> <mapserver-dev-bounces at lists.osgeo.org on behalf of
> sethg at geographika.co.uk> wrote:
>
> Hi all,
>
> I've been trying to see where WFS database queries could be
> optimised, and there is one change that gave a huge performance boost
> in certain situations.
>
> A WFS LAYER can be configured with "gml_include_items" "all" to
> allow maximum flexibility for the client. A WFS request allows a
> propertyName parameter to be passed via the query string to only return
> data for the requested fields e.g. &propertyName=ogr_fid,name will
> return features with only these 2 attributes. This greatly reduces the
> amount of data transferred to the client.
> However the database query itself still selects data for all fields
> for the layer (confirmed in both the MSSQL and PostGIS drivers).
>
> Selecting only the propertyName fields in the query can have a huge
> effect on the database query time, especially for layers which have 10s
> of fields, but where each request may only require 5-6 fields at any
> one time. In my test case 13,000 records with 50 fields takes 12
> seconds compared to running instantly for 5 fields.
>
> A related-case are vector tiles which also select all fields on
> every request [1], unlike their WMS equivalent which uses
> msLayerWhichItems to find the minimum required fields.
> Perhaps this is another case that would benefit from selecting only
> the required fields?
>
> Any thoughts on why any attempts to implement the above might be
> flawed or have unforeseen consequences?
>
> Seth
>
> [1]
> https://github.com/mapserver/mapserver/blob/de351bbcc17360807ccae52302c330d96486c0fc/mapmvt.c#L415
>
> --
> web:http://geographika.co.uk
> twitter: @geographika
> _______________________________________________
> mapserver-dev mailing list
> mapserver-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/mapserver-dev
>
>
>
More information about the mapserver-dev
mailing list