Bonjour,
Je suis chez un client, et je fait des évolutions dans des vues.
J'en profite pour remettre de l'ordre aussi, et virer les lourdeurs de conceptions des requêtes.
J'ai une table dont voici la structure :
matable (id1, id2, id3, id4, val1, val2, val3, ...)
En souligné la clé composite de la table.
Chez ce client, le paramétrage (immuable pour cette partie applicative) fait que id1 et id2 sont suffisants pour identifier une ligne. id3 et id4 sont toujours à 0, quelles que soient les valeurs de id1 et id2.
La requête est donc écrite avec une jointure sur la table qui ne teste que id1 et id2.
=> Il en résulte dans le plan d'exécution un RANGE SCAN de l'index unique.
Est-ce réellement intéressant de rajouter dans la jointure "id3 = 0 and id4 = 0" afin d'expliquer à Oracle qu'on cherche une unique ligne dans la jointure ?
C'est ce que j'ai fais (pour le fun, au cas où un jour, le paramétrage immuable ne change), mais je me pose la question...
A l'exécution je n'ai pas de différence perceptible.
Partager