Bonjour,
Dans un écran développé sous forms 9i, j'écris et exécute des requêtes construites dynamiquement.
Pour (me) simplifier la construction dynamique des requêtes, j'envisage de passer de la 1ère construction qui suit à la 2ème.
Voici la 1ère construction :Et la 2ème construction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT ... FROM A WHERE A.x = '...' [...] -- filtres sucessifs par des clauses AND AND EXISTS ( SELECT * FROM B WHERE A.j = B.j )Nous sommes d'accord avec mes collègues pour dire que ces 2 constructions retournent les mêmes données (même nombre de lignes et lignes identiques) mais une de mes collègues prétend que dans la 2ème construction s'il existe un index sur la colonne x alors il ne sera pas utilisé contrairement à la 1ère construction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT ... FROM A WHERE EXISTS ( SELECT * FROM B WHERE A.j = B.j AND A.x = '...' [...] -- filtres sucessifs par des clauses AND )
J'aimerais donc savoir si les résultats seront les mêmes :
- en terme contenu (même nombre lignes retournées et lignes identiques)
- en terme de performances
Partager