Direkt zum Inhalt | Direkt zur Navigation

Benutzerspezifische Werkzeuge

Sektionen

QGIS Anwendergruppe Schweiz - Groupe d'utilisateurs QGIS Suisse - Swiss QGIS User Group
Sie sind hier: Startseite / News / PostgreSQL Expression Compiler für Serverseitiges Filtern

PostgreSQL Expression Compiler für Serverseitiges Filtern

PostgreSQL Expression Compiler für Serverseitiges Filtern

Aktivierung des PostgreSQL Expression Compiler

In dieser News geht es um das Projekt "PostgreSQL Expression Compiler" - ein Entwicklungsprojekt welches von der QGIS Anwendergruppe Schweiz finanziert wurde.

In QGIS gibt es verschiedene Möglichkeiten und Benutzerdialoge um Daten zu filtern. Grundsätzlich ist zu unterscheiden wo die Daten gefiltert werden: am Datenbankserver oder in QGIS (Client).

Während der "Objektfilter auf Datenanbieter" (Dialog "Layereigenschaften" --> "Allgemein" --> "Objektfilter auf Datenanbieter") bereits direkt beim Datenprovider, bei Postgis-Ebenen also direkt in der PostgreSQL-Datenbank, ausgeführt wird, werden sämtliche anderen Filter in QGIS, also im Client, ausgeführt. Letzters betrifft z.b. Selektionen für die Symbologie, für die Beschriftung, Filter in der Attributtabelle oder das Ausführen von QGIS-Expressions. Im Extremfall werden zehntausende Datenbankrecords übertragen, aber nur einige davon für die Symbolisierung oder gefilterte Attributtabelle benötigt - das Gros der Daten wird also vom Server übertragen, aber erst am Client weg-gefiltert.

Das Projekt "PostgreSQL Expression Compiler" hat sich zum Ziel gesetzt, einige der standardisierten Abfragen (wie Vergleiche, grösser/kleiner, gleich, nicht gleich, IS NULL, IN, NOT IN) vom Client zur Datenbankquelle zu verlagern. In einigen Situationen führt dies zu spürbar schnelleren Abfragen, z.b. bei der Symbolisierung, Beschriftung oder der gefilterten Anzeige von Formularen oder Tabellen. Bei komplexeren Abfragen welche über die oben erwähnten Standard-Filtersituationen hinausgehen, wird nachwievor über die QGIS expressions lokal gefiltert. Der Geschwindigkeitsvorteil ist also nur bei einfacheren Filtern spürbar.

Diese neue Option ist teilweise in QGIS 2.10 umgesetzt (ohne Umsetzung bei der Symbolisierung) - die volle Funktionalität wird aber erst mit QGIS 2.12 ausgeliefert. Sie ist derzeit nur für PostgreSQL/Postgis Datenquellen nutzbar, aber prinzipiell wäre die Technik auch auf andere Datenbanken (SQL Server, Oracle) übertragbar. Jemand müsste die Arbeiten jedoch erledigen oder finanzieren. Die Kombination QGIS/Postgis ist sehr populär - daher wurde der Expression Compiler zuerst für PostgreSQL umgesetzt.

Der Expression Compiler ist zunächst per default ausgeschaltet, bis er besser getestet ist. Er kann unter "Einstellungen" -> "Optionen" -> "Datenquellen" -> Checkbox "Ausdrücke PostgreSQL-serverseitig ausführen, wenn möglich (experimentell)" aktiviert werden. Siehe auch Screenshot anbei.

Im Blogeintrag des Entwicklers des Expression Compilers, Matthias Kuhn (OpenGIS), gibt es weitere Erläuterungen zum Projekt.

Navigation