Hello,
Je dois optimiser des requêtes sur une base Siebel.
Sur une base Oracle je sais faire, sur Siebel je découvre des normes qui me posent de gros problèmes :
1) Les stats ne sont calculées que sur certaines tables, identifiées via l'exécution d'un script officiel Oracle
2) Le paramètre optimizer_index_cost_adj est à 1 (FORTEMENT recommandé par Oracle dans un white paper)
Résultat : je me retrouve avec des requêtes qui n'utilisent QUE des index, 20 000 blocs lus sur disque dur et 500 000 en mémoire pour ramener UNE SEULE ligne d'un SELECT, des Estimated rows à 1 mais un Actual rows à 8000...
Bref, par rapport aux contraintes très fortes imposées sur Siebel, je me résous à lancer le SQL Tuning Advisor qui trouve parfois (pas toujours) un meilleur plan mais sans que ce soit bouleversant.
Est-ce que vous auriez des retours d'expérience pour me dire comment tuner des requêtes Siebel? Faut-il remettre le paramètre optimizer_index_cost_adj à 100 pour éviter de court-circuiter le CBO?
Faut-il calculer les stats de toutes les tables du schéma Siebel? Faut-il plutôt lancer le SQL Access Advisor etc etc?
Par avance un gros merci pour votre aide
Partager