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

 

 
		
		 
         
			
			



 Suppression et insertion massives
 Suppression et insertion massives
				 Répondre avec citation
  Répondre avec citation

 
  
 
 
			 
   
 Et sinon, surtout pas si ce sont des contraintes de type DELETE CASCADE
 Et sinon, surtout pas si ce sont des contraintes de type DELETE CASCADE
 
			 
 
Partager