Bonjour Zebullon,
Envoyé par
Zebullon
j'avais déja planché sur la récursivité mais ceci est très couteux au delà du 4ème niveau
Dans un contexte relationnel, le coût d'une requête peut varier énormément : selon la façon dont on la code, selon la présence des index qui vont bien, une requête qui peut prendre 10 millisecondes peut aussi prendre des heures si on n'a pas effectué les réglages qui vont bien.
Par exemple, avec Oracle, si l’on veut transformer des balayages de tables rédhibitoires en traversées verticales d’index, il faut avoir en tête cet avertissement quand on se lance dans le récursif :
"If the WHERE predicate contains a join, Oracle applies the join predicates before doing the CONNECT BY processing".
Procéder au réglage des requêtes fait partie du jeu (maîtriser d’abord l'instruction EXPLAIN ou son équivalent selon le SGBD)...
Personnellement, j'ai effectué des requêtes récursives sur des tables de 500 000 lignes, pour passer d'un temps de 5 minutes à 100 millisecondes après réglages.
Partager