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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 13 September 2017 15:28

Tititatatoto
Participant occasionnel
Date d'inscription: 26 Jul 2017
Messages: 10

Opération qui n'en finit pas

Bonjour,

Sous pgAdmin 4, j'ai certaines opérations qui fonctionnent dans un temps limité avec un nombre limité d'enregistrement, mais ne terminent jamais avec un plus grand nombre d'enregistrements.

Exemple avec une table contenant 300 000 multipolygones.
ST_SnapToGrid fonctionne en 3 secondes, sur 50000 enregistrements (quelle que soit la tranche de 50000), mais ne termine pas sur les 300 000 enregistrements (alors qu'on pourrait imaginer que le temps de calcul total est juste la somme des temps unitaires).

Y a t-il quelque chose à faire au niveau de la configuration ? Ou une autre astuce ?

Merci par avance

Hors ligne

 

#2 Wed 13 September 2017 22:43

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1025
Site web

Re: Opération qui n'en finit pas

Bonsoir,

Tout est bien indexé spatialement ?

Les géométries sont valides ?

Dernière modification par Loic_GR (Wed 13 September 2017 22:50)


Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

#3 Thu 14 September 2017 10:41

Tititatatoto
Participant occasionnel
Date d'inscription: 26 Jul 2017
Messages: 10

Re: Opération qui n'en finit pas

La table est trop grande, ST_MakeValid finit par échouer.
Et du coup j'essaye de simplifier les géométries pour ensuite appliquer ST_MakeValid.

Mais je devrais peut-être effectivement d'abord traiter les géométries invalides.

L''invalidité est quasi exclusivement de type "Ring Self-intersection".
Il y a peut-être un autre moyen de traiter des grandes tables (ici 300 000 multipolygones dont 5000 invalides) ?

Hors ligne

 

#4 Thu 14 September 2017 11:12

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1025
Site web

Re: Opération qui n'en finit pas

Hello tu as tenté de faire un update des géom non valides ?

Code:

UPDATE ta_table
SET the_geom = ST_MakeValid(the_geomy)
WHERE NOT ST_IsValid(the_geom)

Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

#5 Thu 14 September 2017 11:51

Tititatatoto
Participant occasionnel
Date d'inscription: 26 Jul 2017
Messages: 10

Re: Opération qui n'en finit pas

Oui j'utilise :

Code:

UPDATE table
SET geom = St_CollectionExtract(St_ForceCollection(St_MakeValid(geom)),3)
WHERE NOT St_IsValid(geom);

Mais le traitement ne termine jamais.
Dans ce document, il est conseillé de passer sur Openjump ?

Hors ligne

 

#6 Thu 14 September 2017 12:29

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1025
Site web

Re: Opération qui n'en finit pas

Merci pour le partage du document. Et si tu extraits sur une table les données en erreur et que tu lances le traitement sur cette table réduite ?


Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

#7 Thu 14 September 2017 14:08

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1160

Re: Opération qui n'en finit pas

Salut,

la version de postgres/postgis que vous utilisez serait la bienvenue.

Hors ligne

 

#8 Thu 14 September 2017 14:37

Tititatatoto
Participant occasionnel
Date d'inscription: 26 Jul 2017
Messages: 10

Re: Opération qui n'en finit pas

Versions :
PostgreSQL : 9.6
Postgis : 2.3.3

Finalement j'ai un succès après plusieurs essais. Avec la table entière, j'ai pu reprendre la main après 3h, alors qu'il affiche que le traitement a duré 40 min. C'est bizarre non ?

J'ai lancé le traitement avec la table réduite pour voir si c'est mieux.

Hors ligne

 

#9 Thu 14 September 2017 17:02

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: Opération qui n'en finit pas

Bonjour,

Je serais vous, je n'utiliserais plus PgAdmin 4: trop buggé:
soit PgAdmin III LTS de BigSQL, qui supporte PG <= 10.0, soit datagrip ou autre editeur puissant.

Nicolas

Hors ligne

 

#10 Mon 18 September 2017 09:01

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3199
Site web

Re: Opération qui n'en finit pas

Bonjour

Je serais vous, je n'utiliserais plus PgAdmin 4: trop buggé:


+ 1000

Et sous windows 64 c'est plus de buggs c'est une horreur !


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#11 Mon 18 September 2017 11:37

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Re: Opération qui n'en finit pas

Intéressants vos retours sur PgAdmin 4 : j'en avais le sentiment, mais je me demandais si ça ne venait pas de moi wink
Du coup, j'ai voulu installer PgAdmin III LTS de BigSQL, mais je ne trouve que le téléchargement de PostGreSQL complet : https://www.openscg.com/bigsql/postgresql/
Est-on obligé de mettre à jour l'ensemble de PostGreSQL pour utiliser cette version de PgAdmin ? (je suis sur PgAdmin III v1.22.1 de février 2016, avec un serveur PostGreSQL 9.3 en local) Et si oui, est-ce une procédure de routine (simple) sur Windows 7 64bit ?


Sylvain M.

Hors ligne

 

#12 Mon 18 September 2017 11:55

Tititatatoto
Participant occasionnel
Date d'inscription: 26 Jul 2017
Messages: 10

Re: Opération qui n'en finit pas

J'ai fait le test sur la table réduite aux lignes invalides : même problème, le traitement dure environ 30 min mais je reprends la main au bout de plusieurs heures.

J'ai installé PgAdmin III LTS de BigSQL.
Avec le package complet, j'ai juste installé PgAdminIII et administré la même base que celle que j'utilisais auparavant (cela ne pose pas de problème ?).
Le problème semble persistant (2h que ça tourne, et je n'ai pas repris la main).

Hors ligne

 

#13 Tue 19 September 2017 12:38

Tititatatoto
Participant occasionnel
Date d'inscription: 26 Jul 2017
Messages: 10

Re: Opération qui n'en finit pas

Finalement le calcul a duré 8 heures sous PgAdminIII...

Hors ligne

 

#14 Tue 19 September 2017 14:31

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1025
Site web

Re: Opération qui n'en finit pas

Salut,

Il faut parfois être un peu (beaucoup) patient !


Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

#15 Wed 20 September 2017 18:25

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: Opération qui n'en finit pas

Bonsoir,

Une petite précision concernant ces pb de perf:
Ni pgAdmin III ni le 4 ne realisent le moindre calcul: ils envoient (en tant que client), une requete SQL au serveur qui retourne le résultat au client.

Pour savoir ce qui se passe dans une requete, il faut les infos suivantes:
versions de PG, postgis, os et disques.
Structure de la ou les tables
et surtout, analyser le plan de la requete, la seule information qui dit pkoi une requete est lente.
EXPLAIN <requete> montre le plan sans executer la requete
EXPLAIN ANALYZE <requete> montre le plan ET execute la requete, indiquant le timing et les blocs de données accédés.

Donc, ici, on aimerait connaitre le plan de la requete pour voir ce qu'a compris PG.

Nicolas

Hors ligne

 

#16 Fri 22 September 2017 17:24

Tititatatoto
Participant occasionnel
Date d'inscription: 26 Jul 2017
Messages: 10

Re: Opération qui n'en finit pas

Bonjour,

Finalement la requête semble fonctionner en 30 min (mais toujours un peu plus de temps pour reprendre la main).
Ce que donne EXPLAIN :

'Update on A (cost=0.00..417025.07 rows=107683 width=45)'
'  ->  Seq Scan on A (cost=0.00..417025.07 rows=107683 width=45)'
'        Filter: (NOT st_isvalid(geom))'

Hors ligne

 

Pied de page des forums

Powered by FluxBB