Bonjour,
j'ai la problématique suivante :
j'ai 2 tables Table1 et Table1_BAK de structures identiques. Dans ces tables j'ai une clé primaire sur environ 8 champs. Parmi ces 8 champs 3 se nomment MODELID, VERSIONID et PERIODID. J'ai un traitement amont (que je ne peux pas modifier) qui vide toutes les donneés de table1 pour un MODELID donné (les données des autres MODELID ne sont pas affectées) puis qui exporte des données pour plusieurs combinaisons du triplet (MODELID, VERSIONID, PERIODID). Le problème est qu'au prochain export si je ne réexpore pas les combinaisons précédemment exportées elles disparaitront de table1 alors que je dois les conserver (ce cas se présentera).
J'ai donc à mettre en place le traitement suivant :
dans Table1_BAK je supprime toutes les données des triplets (MODELID, VERSIONID, PERIODID) présents dans Table1
Je recopie les données de Table1 vers Table1_BAK en filtrant sur le MODELID
Je supprime les données dans Table1 en filtrant sur MODELID
Je recopie les données de Table1_BAK vers Table1 en filtrant sur MODELID
je dois appliquer ce traitement à une dizaine de tables comportant souvent quelques millions de lignes donc je dois optimiser ma procédure.
question 1 : le principe vous paraît-il tenir la route ou voyez-vous d'autres solutions?
question 2 : Lorsque je fais un DELETE en filtrant sur le MODELID, est-il nécessaire de désactiver des indexs (tous?) et les contraintes (toutes?) de la table en question.
question 3 : idem lors des insertions, est-ce que je dois jouer sur les contraintes et indexs pour améliorer les performances
merci pour votre aide,
Romuald
Partager