qgis / QGIS

QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)
https://qgis.org
GNU General Public License v2.0
10.65k stars 3.01k forks source link

Attribute update performance slow with table join between memory provider and gpkg #33894

Open Saijin-Naib opened 4 years ago

Saijin-Naib commented 4 years ago

Describe the bug Update of 98 records using attribute table taking excessive time (30+s) using simple/direct entry with no complex queries.

How to Reproduce Have in-memory geospatial data (points) joined to on-network-share GPKG image

Update attributes using attribute table. For instance, salt_radius set to 50, update all. Takes excessively long.

I've attempted to include a stripped gpkg demonstrating this behavior, but instead of the excessively long time to commit changes between memory+gpkg, between gpkg+gpkg the changes either fail to commit entirely, or hang QGIS.

QGIS and OS versions

QGIS version 3.10.1-A Coruña QGIS code revision ef24c526da
Compiled against Qt 5.11.2 Running against Qt 5.11.2
Compiled against GDAL/OGR 3.0.2 Running against GDAL/OGR 3.0.2
Compiled against GEOS 3.8.0-CAPI-1.13.1 Running against GEOS 3.8.0-CAPI-1.13.1
Compiled against SQLite 3.29.0 Running against SQLite 3.29.0
PostgreSQL Client Version 11.5 SpatiaLite Version 4.3.0
QWT Version 6.1.3 QScintilla2 Version 2.10.8
Compiled against PROJ 6.2.1 Running against PROJ Rel. 6.2.1, November 1st, 2019
OS Version Windows 10 (10.0)
Active python plugins CalculateGeometry; MemoryLayerSaver; networks; openlayers_plugin; realcentroid; refFunctions; snail; SpreadsheetLayers; db_manager; MetaSearch; processing

Additional context https://www.youtube.com/watch?v=D7VXyyELhio

kgjenkins commented 2 years ago

I'm running into this issue as well, using QGIS 3.22.1 on Windows. When trying to create a join on a temporary layer, QGIS hangs. But if I save the layer to a geopackage and then join, it works fine.