Bonjour,
Je suis actuellement chez un client qui utilise une base Oracle 8.1.7 en mode RULE.
Sur un système de production, l’ensemble des requêtes ont un comportement tout à fait normal .
Sur des requêtes que j’ai besoin d’exécuter sur un requêteur (BO pour ne pas le citer), je rencontre des soucis de perfs. Evidemment, je croise des tables non prévues dans leurs systèmes de production avec des index qui n’existent pas forcément.
J’ai donc fait un analyze table sur les tables , et j’utilise un HINTS o un alter session optimizer mode=’CHOOSE’ pour suivre mon plan d’exécution. Et là, bien évidemment, les mêmes requêtes qui prenaient du temps à s’exécuter, s’exécute normalement .
Jusqu’ici, tout va bien, je n’ai même pas eu besoin de toucher à la SGA, ou à d’autres paramètres.
Ce qui me gêne, c’est que mon client à des procédures chaque fin de mois qui prennent environ 1H00, et comme par hasard depuis l’analyze des tables, elles ne passent plus .
De mon côté, je n’ai pas les requêtes exécutées lors des traitements, mais mon client à simplement fait un delete des Stats, et depuis son traitement fonctionne.
Ma question est la suivante :
Sachant que dans le INIT.ORA, la base est en mode RULE, pourquoi les stats ont une influence sur des traitements qui se font forcément en mode RULE ? (et dans ce cas qui n’utilise pas les tables de stats).
Et pourquoi en supprimant les stats, le traitement passe correctement (toujours en mode RULE) ?
Partager