![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
escartefigue
1 2 3 4 5
| SELECT t1.anode, sum(t2.size) FROM t4
inner join t3 on t3.inode = t4.inode
inner join t2 on t2.snode = t3.snode
inner join t1 on t1.onode = t4.onode
GROUP BY t1.anode; |
J'ai testé les 3 types de requêtes avec "EXPLAIN", elles ont le même comportement et le même temps d’exécution sur les petites tables.
Liste des 3 types de jointures:
1 - jointure dans le FROM séparé par des virgules
2 - jointure avec le mot clé "join"
3 - jointure avec le mot clé "WITH"
![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
Séb.
Petite taille : combien de lignes dans les tables ?
Très gros volume : combien de lignes ?
Temps important : de combien à combien ?
Petite taille : 52 000 000 row pour t2 & t4 et t3 40 000 000
Très gros volume : 609 000 000 row pour t2 & t4 et t3 560 000 000
Temps important : 4h à 7h selon les machines (de 16 à 64 cores et de la ram en suffisance, mais disque non-SSD)
Pour information : les temps sont analogues sur maxDB, mais dans le passé l'éclatement des requêtes sur maxDB a montré de beaux gains de performance.
Je suis vos réponses et je vais continuer les tests, car je souhaite apprends.
Je ne rentre pas dans les détails, mais je n'ai plus la réservation de ma machine de test. J'ai donc finalisé le POC en me rabattant sur un script Perl pour faire le taf.
Une machine a été préparée avec une base 1.7To pour faire une flopée de tests de performance.
Pour tout vous dire, j'ai commencé un script qui utilise une table temporaire pour stocker le résultat de chaque boucle. Puis pour optenir le resultat, un:
SELECT anode, sum(size) FROM TEMPTABLE GROUP BY anode;
que je finirais ce week-end pour vérifier la différence du temps de traitement du script Perl et de la fonction ....
Partager