PostgreSQL Expression Compiler pour le filtrage côté serveur
Dans cet article, nous allons discuter du projet « PostgreSQL Expression Compiler » - un projet financé par le groupe d'utilisateurs QGIS Suisse.
Dans QGIS, il existe diverses possibilités et interfaces utilisateur pour le filtrage des données : il faut distinguer le filtrage côté serveur (p. ex. dans une base de données) du filtrage côté client (QGIS).
Alors que le « Provider feature filter » (Propriétés de la couche -> Général -> « Provider feature filter ») filtre les données déjà côté serveur, tous les autres filtres se font côté client dans QGIS. Cela concerne les règles de symbologie, l’affichage des tables attributaires et des tables liées (p. ex. les relations 1:n). Dans certains cas extrêmes, QGIS récupère tous les enregistrements (potentiellement des dizaines de milliers) à partir de la base de données, en ignore la plupart parce que les règles de symbologie ou les tables d'attributs filtrées ont seulement besoin de quelques lignes.
Le projet « PostgreSQL Expression Compiler » a pour but d’utiliser plus intelligemment le filtrage côté serveur pour la plupart des requêtes standardisées (p. ex. plus petit / grand que, égal, pas égal, IS NULL, IN, NOT IN, AND, etc.). Dans certaines situations, il y aura un gain de performance considérable, par exemple pour des règles de symbologie avec seuils de zoom qui ont seulement besoin d’objets d'une certaine classe ou pour les tables d'attributs triées vers le bas ou des tables liées. Les filtrages qui vont au-delà des requêtes de base énumérés ci-dessus seront toujours filtrés côté client, comme avant. Le gain de performance est donc seulement pour certains filtres.
Cette nouvelle option est partiellement mise en œuvre dans QGIS 2.10 (sans la partie symbologie) et entièrement dans la version master pour être disponible dans la prochaine release de QGIS 2.12. Le compilateur est actuellement limité à des sources de données PostgreSQL / PostGIS, car c’est la base de données la plus populaire utilisée de pair avec QGIS. Cependant, la technique pourrait être utilisée avec d'autres sources de données de base de données telles que Microsoft SQL Server ou Oracle. Il y a toutefois un certain travail à faire, donc le besoin de payer un développeur pour le réaliser.
Le compilateur d'expression est désactivé par défaut et doit être activé sous Préférences -> Options -> Sources de données -> Exécuter les expressions côté serveur PostgreSQL si possible. Voir également la capture d'écran ci-joint.
Vous trouverez plus d'informations sur le blog du développeur de cette fonctionnalité, Matthias Kuhn (OpenGIS).