Bonjour,
j'ai une requête SQL qui porte sur une colonne indexée:
Le résultat de cette requête porte sur environ 93% de la table, l'index n'est pas donc pas très discriminant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 UPDATE m2oequipement eq SET eq.m2oCodeSup = 'SUP_INCO' WHERE eq.sysClass = 'm2oModule'
Lorsque j'affiche le plan d'exécution, je vois qu'il exécute un FULL SCAN.
Lorsque j'affiche le plan d'exécution de la même requête mais avec une condition sur une valeur plus discriminante (6%):
Je vois qu'il fait un RANGE SCAN.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 UPDATE m2oequipement eq SET eq.m2oCodeSup = 'SUP_INCO' WHERE eq.sysClass = 'm2oRepeteur'
Est-ce qu'ORACLE décide ou non d'utiliser l'index pour sa requête en fonction du fait qu'il soit discriminant ou pas ?
Dans ce cas il va quand même interroger l'index au préalable ?
merci !
Partager