Bonjour à tous...
Je vous joins un document où j'ai effectué deux tkprofs sur 1 select Ordered. Ok
Ce select tourne sur des caisses différentes...
Le traitement de la caisseA s'exécute en 2 minutes, celui de la caisseB en 1 heure...
CaisseA (plus grosse table mpliquée dans le select=> 30 000 000 de ligne)
CaisseB (plus grosse table mpliquée dans le select=> 50 000 000 de ligne)
Les chemins d'accès sont identiques car 'SELECT ORDERED' => Ok
Les stats sont à jour sur les 2 caisses => OK
Il y a une grosse différence entre le Fetch de la caisseA (1 fetch) et celui de la caisseB (21850 fetchs).
La caisseB a deux fois plus de mémoire (SGA, SHARED-POOL, JAVA_POOL etc...) que la caisseA => OK
Pourquoi d'après vous, la différence d'exécution entre les fetch est-elle aussi importante... et qu'est-ce qui pourrait faire qu'une database 1 fois 1/2 plus grosse qu'une autre (30 000 000 contre 50 000 000) puisse générer des temps d'attente aussi décalés (de 2 minutes à 1 heure) étant donné que les chemin d'accès sont identiques...
Vous pourrez voir aussi que les volumétries triées ne sont pas les mêmes entre les deux caisses... et c'est peut-être pour cela que le temps d'exécution passe de 2 minutes à 1 heure, mais j'ai doublé les zones mémoires de la caisse à 50 000 000 de ligne et cela n'a rien changé !
Comment pouvez-vous expliquer ça ?
A part réécrire le select, verriez-vous une autre piste pour optimiser...
Merci d'avance pour vos réponses...
Partager