opengisch / QGIS-Issues-SH

QGIS Probleme und Wünsche, Kanton Schaffhausen
1 stars 0 forks source link

Expression und QGIS-Perfomance #52

Closed ackmar closed 1 year ago

ackmar commented 4 years ago

Bezugnehmend auf das geschlossene Ticket #51 leidet die Perfomance (ca. 7 Sek. Wartezeit bei schon sehr geringem Datenstand) mit solchen Expression ( "spielplatzstammdaten_ref" = attribute(get_feature('inspektionkopf', 't_id', current_value('inspektionkopf')),'spielplatz')) stark darunter, wenn ein Datensatz abgefragt, editiert oder etwas an den Tabellen-Einstellungen gemacht wird.

Gibt es alternative Lösungen und ist bei der Entwicklung ein Finetuning in QGIS möglich, um die Perfomance zu steigern?

Gruss Marcel

m-kuhn commented 4 years ago

Man könnte das mit einer eigenen (Python) Expression Function sicher optimieren, dort kann das caching spezifisch optimiert werden.

Ansonsten müssten wir das Projekt genau ansehen um den Engpass zu isolieren. get_feature Aufrufe sind zwar langsam, da ein Request an die Datenbank geschickt wird, jedoch müsste dies hier nur ein Aufruf sein, da auch hier ein Cache greifen sollte.

Ein kurzer Test um das Problem sicher auf die Expression einzugrenzen: mit "spielplatzstammdaten_ref" = 1 (1 mit etwas gültigem ersetzen) funktioniert das ganze Schnell?

ackmar commented 4 years ago

Ohne die Umschweife über einen gültigen Wert funktioniert die Sache ganz schnell.

romefi commented 3 years ago

Wir haben immer noch das Problem, dass gewisse Expressions sehr langsam sind. In einer Expression, welche den Display vom Mutterobjekt über eine Relation auf ein Kindobjekt berechnet wird, wird die Anzeige zwar schnell gemacht, aber wenn ein Objekt angewählt wird, dauert es bis 20 Sek., bis das bestimmte Objekt angezeigt wird.

Die Expression lautet: relation_aggregate(relation:='inspektion_inspektionkopf_fkey',aggregate:='count',expression:="mangel_behoben")

Eingesetzt wird es hier: image

signedav commented 2 years ago

Betrifft vermutlich #91