Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Fri 06 November 2020 10:17

aheurion
Participant actif
Lieu: NANTES
Date d'inscription: 8 Oct 2020
Messages: 141

QGIS 3.10: Performances calculs champs virtuels

Bonjour,

J'ai entamé un projet assez conséquent et ai utilisé pas mal les champs virtuels pour récupérer des informations entre les couches avec des aggregates.

Cependant, avec le nombre de données qui commence à grimper, je me rends compte que ces calculs prennent de plus en plus de temps et cela risque de devenir problématique dans le futur (je n'ai incorporé encore que 1% maximum des données au final).

Je suis passé sous PostgreSQL/PostGIS pour essayer de pallier le problème mais je ne vois pas vraiment d'amélioration...

Quelqu'un aurait-il une idée ? (j'aimerais autant que possible garder l'esprit dynamique de ces champs virtuels car ils me permettent de mettre à jour les données nécessaires lorsque l'on fait un changement sur un objet lié)

Peut-être qu'une optimisation de l'expression suffirait, mais j'en doute hmm

Hors ligne

 

#2 Mon 09 November 2020 15:47

sylvainSIG
Participant assidu
Lieu: Moissac
Date d'inscription: 29 Nov 2018
Messages: 265

Re: QGIS 3.10: Performances calculs champs virtuels

Salut,

Est ce que ta ou tes couches ont des index spatiaux ? En général, ça réduit la durée des requêtes.

Après ce que tu appelles aggregates, ce sont les aggregats classiques (genre count, sum, avg) et qui ne posent pas spécialement de problème, ou les plus évolués (genre string_agg), qui pourrissent les bandes passantes ?

Bien à toi

Sylvain

Dernière modification par sylvainSIG (Mon 09 November 2020 15:48)

Hors ligne

 

#3 Mon 09 November 2020 16:30

aheurion
Participant actif
Lieu: NANTES
Date d'inscription: 8 Oct 2020
Messages: 141

Re: QGIS 3.10: Performances calculs champs virtuels

ça réduit la durée des requêtes des champs virtuels aussi ? Je vais regarder ça, merci !

Sinon en ce qui concerne les aggregates ce sont des concatenate et des array_agg, je suis en train d'essayer de trouver des expressions plus simples, mais c'est galère, j'ai l'impression qu'un champ virtuel ne peut pas dépendre d'un autre champ virtuel (l'idéal pour moi c'est qu'un premier champ récupère les ids de mes lignes dans mes points, puis qu'un second champ se serve de ces ids récupérés pour faire un aggregate plus simple).

Pour info, j'ai souvent plusieurs lignes qui arrivent à un même point, et je souhaite les trier par leur azimut dans mes champs virtuels. (le plus galère c'est quand 2 lignes sont superposées et parfaitement parallèles, et donc ayant le même azimut, ça m'oblige à avoir une expression à rallonge...).

Merci pour ta réponse en tous cas wink
PS : j'ai mis en PJ l'expression d'un de mes champs virtuels qui récupère l'altitude de la ligne arrivant au point
PS2 :  le xml c'est un style que j'ai créé pour notepad++ pour styliser comme sur QGIS (Langage>Langage utilisateur>définir votre langage>importer)

Dernière modification par aheurion (Mon 09 November 2020 16:32)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#4 Mon 09 November 2020 17:00

sylvainSIG
Participant assidu
Lieu: Moissac
Date d'inscription: 29 Nov 2018
Messages: 265

Re: QGIS 3.10: Performances calculs champs virtuels

Vu le nombre de sous-requêtes, tu m'étonnes que ça galère... Pour info, chez Alwaysdata, si tu n'as pas un serveur dédié pour ce genre de requête, il te bloque à deux requêtes jusqu'à temps que tu règles le problème. big_smile

Hors ligne

 

#5 Mon 09 November 2020 17:17

aheurion
Participant actif
Lieu: NANTES
Date d'inscription: 8 Oct 2020
Messages: 141

Re: QGIS 3.10: Performances calculs champs virtuels

Ouais ouais mais je galère à les réduire hmm
Si je pouvais passer par un champ virtuel intermédiaire qui recueillerait les ids, et que seulement ensuite les autres champs virtuels soient calculés, ça serait super... mais je ne vois pas comment faire

Hors ligne

 

Pied de page des forums

Powered by FluxBB