Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Améliorer les performances du rafraichissement de la vm_observations #267

Open
jpm-cbna opened this issue Mar 14, 2021 · 5 comments
Open
Assignees

Comments

@jpm-cbna
Copy link
Contributor

Sur de grand territoire (une région) avec de nombreuses observations (9,3 millions), la vue matérialisée vm_observations mais très longtemps à ce générer (~35mn).
Pour accélérer sa création, il est possible de subdiviser le territoire dans une nouvelle vue matérialisée t_subdivided_territory à l'aide la fonction st_subdivide() . Pour la création de la vue vm_observations, nous utilisons alors st_intersects() avec les polygones "subdivisés" et le temps de création passe à moins d'1mn.

@jpm-cbna jpm-cbna self-assigned this Mar 14, 2021
@jpm-cbna jpm-cbna changed the title Améliorer les performances du rafraichissemnt de la vm_observations sur de grand territoire Améliorer les performances du rafraichissemnt de la vm_observations Mar 14, 2021
@jpm-cbna jpm-cbna changed the title Améliorer les performances du rafraichissemnt de la vm_observations Améliorer les performances du rafraichissement de la vm_observations Mar 14, 2021
@camillemonchicourt
Copy link
Member

Je dirai que les intersects avec le territoire ne sont pas forcément pertinents et je enlèverai complètement par défaut de la vue

@jpm-cbna
Copy link
Contributor Author

Le mécanisme avec st_subdivide() est très efficace. Cela permet de maintenir l'intersection même avec un grand nombre d'observation...
Est ce que la suppression de l'intersection ne va pas engendrer des problèmes pour certaines installations ?
J'ai poussé une pull-request avec le code modifié puisque j'avais déjà mis en place ce mécanisme. Cela permet de voir ce que cela représente.

@jpm-cbna
Copy link
Contributor Author

En fait, après analyse, il y a 2 filtres géographique des observations dans l'Atlas. Le premier est fait au niveau de la vue synthese.syntheseff qui filtre sur les communes qui intersectent avec les observations.
La VM atlas.vm_observations se basant sur la vue synthese.syntheseff, ce nouveau intersecte semble effectivement inutile !
Je vais voir pour remplacer ma pull-request par une nouvelle supprimant l'intesect de vm_observations.

@camillemonchicourt
Copy link
Member

La vue synthese.syntheseff est une vue temporaire qui avait vocation a sortir une nouvelle version de GN-atlas (1.4) compatible avec GeoNature v2 sans changements lourds de GN-atlas, en reproduisant la structure de GeoNature v1.

Mais à terme cette intermédiaire ajoute de la complexité et on aurait intérêt désormais à sortir une nouvelle version de GN-atlas compatible avec GeoNature v2 directement, sans reproduire un intermédiaire simulant la structure de GeoNature V1, donc en supprimant synthese.syntheseff.

@jpm-cbna
Copy link
Contributor Author

Effectivement, la vue synthese.syntheseff est en outre non fonctionnelle avec un très gros volume de données.
Dans ce cas là, il faudrait garder le filtre sur le territoire soit dans la vm_observations si elle se base directement sur synthese.synthese, soit dans une VM venant remplacer synthese.syntheseff.

Il faut aussi voir s'il n'est pas nécessaire de le prendre en compte ce filtre sur le territoire dans l_communes, vm_communes, t_mailles_territoire...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants