L'optimiseur d'Oracle fait des mauvais choix ?
Bonjour,
J'ai mis en place dans Oracle une table qui contient 3 millions de lignes avec comme clé primaire les deux premières colonnes (Clé composite) : colonne1 et colonne2.
Le problème est le suivant :
- Quand je lance une requête toute simple du genre :
Code:
1 2 3 4
| SELECT colonne1
FROM matable
GROUP BY colonne1
ORDER BY colonne1 ASC NULLS LAST; |
L'optimiseur d'oracle décide d'utiliser l'index de clé primaire, ce qui prend 20 secondes de temps d'exécution.
- Quand je met un hint pour ne pas utiliser cet index, la requête mets 3 secondes pour s'exécuter.
Oracle prend-il de mauvaises décisions quand à l'utilisation des index ? Est-il possible d'arranger les choses ?
Je précise que j'ai remis à jour les statistiques de la table et ça fonctionne toujours aussi mal.
Je ne peux pas non plus utiliser comme solution l'utilisation d'un hint permanent pour l’empêcher d'utiliser l'index vu que la requête est lancée par une application cliente ! (Impossible de la modifier, donc impossible d'insérer des hints).
Merci d'avance pour votre aide !