J'essaie de comprendre comment no_index accélère réellement une requête et je n'ai pas réussi à trouver de documentation en ligne pour l'expliquer.
Par exemple, j'ai cette requête qui a été exécutée extrêmement lent
select *
from <tablename>
where field1_ like '%someGenericString%' and
field1_ <> 'someSpecificString' and
Action_='_someAction_' and
Timestamp_ >= trunc(sysdate - 2)
Et l'un de nos DBA a pu l'accélérer de manière significative en faisant ceci
select /*+ NO_INDEX(TAB_000000000019) */ *
from <tablename>
where field1_ like '%someGenericString%' and
field1_ <> 'someSpecificString' and
Action_='_someAction_' and
Timestamp_ >= trunc(sysdate - 2)
Et je n'arrive pas à comprendre pourquoi ? J'aimerais comprendre pourquoi cela fonctionne afin de voir si je peux l'appliquer à une autre requête (cette fois-ci une jointure) pour l'accélérer car elle prend encore plus de temps à s'exécuter.
Merci !
** Mise à jour ** Voici ce que je sais de la table de l'exemple.
- C'est une "table partitionnée".
- TAB_000000000019 est la table et non une colonne.
- field1 est indexé