Bonjour,
je cherche à optimiser au mieux ce query. N'étant pas dba, je vois plusieurs options, mais je ne suis pas sûr de la meilleure.
La db est H2.
Mon select actuel est:
En gros, je cherche tous les foreig key vers une table entry dont au moins un enfant (table donnees) correspond à minimum 75% à un élément de la table criteres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT c.entryid, max(une_fonction(d.col1,d.col2,c.col1,c.col2)) as percentage FROM donnees d , criteres c group by entryid having max(une_fonction(d.col1,d.col2,c.col1,c.col2)) > 0.75
La manière dont la correspondance se fait (une_fonction) n'a pas d'intérêt ici.
Est-ce que le fait d'avoir 2 fois l'appel à max(une_fonction(...)) n'est pas inutilement consommateur en temps ?
Quid de ceci ou de tout autre version ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT c.entryid, max(res) as percentage from ( SELECT c.entryid, une_fonction(d.col1,d.col2,c.col1,c.col2) as res FROM donnees d , criteres c ) group by entryid having max(res) > 0.75
Partager