J'ai une question simple:Oracle "Equal" plus rapide que "Different"
quelqu'un m'a dit que la requête:
select a1, a2, sum(b1)
from myTable
where a1 ='bla' and a2='blabla' and a3 ='aaa'
est plus rapide alors
select a1, a2, sum(b1)
from myTable
where a1 ='bla' and a2='blabla' and a3!='bbb'
Je peux comprendre que dans certains cas, en général, a = est plus rapide qu'un! =. mais dans ce cas, j'ai une somme (b1). Pour cela, je dois lire tout MyTable.
Merci. Cordialement
Est-ce que "quelqu'un" ou quelque chose de fournir de référence? – Passerby
Pourquoi avez-vous besoin de lire tout myTable? Votre clause 'where' est en train de filtrer, donc vous ne faites pas la somme de toutes les valeurs de' b1', et si vous n'avez que deux valeurs dans 'a3', le résultat sera différent. (Si vous obtenez un scan de table complet est une question distincte). –
En fait, cela dépend de votre logique de requête et de la structure de votre base de données. Dans votre exemple, Equal est plus rapide parce que l'opérateur égal correspond directement à la chaîne et non l'équivalent. – Niks