Workaround, that works well in my specific data and use case:

My input layer only covers small and local parts of the full coverage of the big PostGIS layer. Because of this I could switch the overlay input for the intersection from the PostGIS layer to a query layer that filters the PostGIS layer against the convex hull of the input layer with ST_Intersects. Now only a small fraction of the features will be fetched and the complexity depends mostly on the spatial distribution of the input data, not the overlay layer.

Works very well so far and vastly faster.

I still feel like I am overlooking something very basic though :o)

Cheers, Hannes

On 4/9/25 13:26, Johannes Kröger (WhereGroup) via QGIS-User wrote:
Howdy!

I have a local layer with a few polygon features and a remote PostGIS layer with millions of polygon features.

When I run native:intersection with the small local layer as input and the big remote layer as overlay, QGIS will fetch all features from the big remote layer and create a local spatial index. This uses lots of bandwidth and takes a long time.

I would have expected QGIS to handle PostGIS layers in a way that their existing indexes are utilised.

Searching for the processing log message "Creating spatial index", it seems like https://github.com/qgis/QGIS/blob/d238f1132bbbf8c479356b9267cff7ee137e5be9/src/analysis/processing/qgsoverlayutils.cpp#L233 is responsible for that. If I read the code correctly, a QgsSpatialIndex will *always* be created for the overlay layer.

Is there a way to do intersections where existing (PostGIS) indexes are used?

Cheers, Hannes

PS: A workaround solution could be using some custom Python code around qgis:postgisexecuteandloadsql I guess.

--
Johannes Kröger / GIS-Entwickler/-Berater

****************************************
WhereGroup Shorts 2025 - am 15. Mai
Im Fokus: PostgreSQL & PostGIS
Online als Zoom-Meeting
https://wheregroup-shorts.de
****************************************

WhereGroup GmbH
c/o KK03 GmbH
Lange Reihe 29
20099 Hamburg
Germany

Tel: +49 (0)228 / 90 90 38 - 36
Fax: +49 (0)228 / 90 90 38 - 11

johannes.kroe...@wheregroup.com
www.wheregroup.com

Geschäftsführer:
Olaf Knopp, Peter Stamm
Amtsgericht Bonn, HRB 9885
-------------------------------


_______________________________________________
QGIS-User mailing list
QGIS-User@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user

Reply via email to