Bonjour a tous...je bosse sous Oracle et j'ai des problèmes de perf assez bizarre que je n'arrive pas a expliquer...
La version d'Oracle utilisée est 9i
J'expose mon problème:
J'ai une grosse table sous Oracle donc, qui contient 8,6 millions de lignes.
Je souhaite virer des lignes de données, environ 100 000
Quant j'execute cette requête :
select count(*) from rsa_fixe where annee=2006;
elle s'execute en 2sec (Oracle utilise l'index que j'ai placé sur le champ annee)
Lorsque j'execute
delete from rsa_fixe where annee=2006;
Ca dure plus de 4 heures, et quand je regarde mon plan d'éxecution, Oracle n'utilise plus mon index...
J'ai tenté ma suppression en utilisant un autre champ, lui aussi indexé :
delete from rsa_fixe where type_fichier='priv2006';
Cette requête concerne le même nombre de lignes et passe bien par son index...mais même topo, plus de 4h d'execution....
J'ai lancé un analyze sur cette table, même topo, des perfs superbe en select, mais ca rame sévère lors des delete...
La commande utilisée pour analyser ma table :
analyze table rsa_fixe compute statistics for table for all indexes for all indexed columns;
Donc voila, je suis pas dba oracle, donc quelque chose doit m'échapper...si quelqu'un a une idée, je suis preneur car je ne comprends plus...
Merci d'avance a tous!
Partager