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

[SYNTHESE] Utilisation de taxref_tree pour les filtres taxonomiques #3255

Open
bouttier opened this issue Nov 13, 2024 · 1 comment
Open

Comments

@bouttier
Copy link
Contributor

Actuellement le filtrage en synthèse se fait en deux étapes :

  • détermination de l’ensemble des cd_ref via find_all_taxons_children
  • filtrage IN avec le résultat précédent

L’ajout de la VM taxref_tree offre la possibilité, via une jointure de cette table à la synthèse, de filtrer directement sur un taxon parent sans appel à la fonction find_all_taxons_children.

Lorsque l’on effectue une recherche sur un nœud plutôt bas de l’arbre taxonomique, les performances sont plutôt similaires. L’appel à find_all_taxons_children est relativement négligeable et les conditions IN vs taxref_tree sont relativement similaire.

En revanche lorsque la recherche porte sur un nœud élevé, par exemple « Animalia », taxref_tree améliore quelque peu les performances (~550-600ms vs ~850-900ms sur mes tests).

EXPLAIN ANALYSE SELECT count(*)
FROM gn_synthese.synthese s
WHERE s.cd_nom IN (SELECT DISTINCT cd_ref FROM taxonomie.find_all_taxons_children(ARRAY[183716]));
EXPLAIN ANALYSE SELECT count(*)
FROM gn_synthese.synthese s
JOIN taxonomie.vm_taxref_tree tt on s.cd_nom = tt.cd_nom , taxonomie.vm_taxref_tree parent
WHERE parent.cd_nom = 183716 AND tt.path <@ parent.path;

Le gain de performance ne semble donc pas extraordinaire, mais passer à taxref_tree s’envisage.

@bouttier bouttier changed the title [SYNTHESE] Utilisation de taxref_tree [SYNTHESE] Utilisation de taxref_tree pour les filtres taxonomiques Nov 13, 2024
@camillemonchicourt
Copy link
Member

A voir aussi dans les filtres taxonomiques avancés si c’est la même conclusion.

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

No branches or pull requests

2 participants