Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2732 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  gestion d erreur, rollback

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

gestion d erreur, rollback

n°2199558
melvine75m
Posté le 06-08-2013 à 20:23:17  profilanswer
 

Salut,
 
 
J'ai une procédure qui copie les lignes d'une table dans une table d'une autre base plusieurs fois par jour.
Jusqu'à présent comme tout marchait bien,je ne faisais pas de gestion d'erreur.
La procédure fait un insert into select * from masource; puis un commit;
 
Je compte intégrer maintenant la gestion d'erreur.
Dans la mesure ou je traite de grosse volumétrie,
si mon insert échoue en cours de travail que va faire ma procédure?
un rollback?la source peut contenir 1 million de lignes,
j'imagine que si elle fait un rollback d 'un million de ligne cela va prendre des heures?
 
Pour la gestion d'erreur,
qu'elle est la méthode la plus otpimale?avec un exception when others then ?
 
Merci
 
 
 
 
 
 
 
 
 
 

mood
Publicité
Posté le 06-08-2013 à 20:23:17  profilanswer
 

n°2209293
gpl73
Posté le 05-11-2013 à 13:52:57  profilanswer
 

depuis le temps , que tu as posté ce message, tu as du avoir choisi une solution...
Par curiosité, quelle est elle? cela donne quoi le rollback d'un million de ligne?
n'as tu pas des soucis avec le niveau d'isolation de ta transaction?
Guillaume

n°2209510
melvine75m
Posté le 06-11-2013 à 22:18:42  profilanswer
 

je n'ai pas encore résolu le problème, jusqu'ici je n'ai pas encore eu le soucis.
Mais si jamais cela se produit, j'imagine que le tablespace va "péter".
 
Je voulais le faire avec bulk collect,
mais le hic est que si jamais ça tombe en erreur, je retombe dans la même problématique.
Si j'insère 900 000 (commit fait) et que le traitement tombe en échec pour les 100 000 dernières lignes,
je devrais les supprimer de la table et donc même problème.

n°2209525
dreameddea​th
Posté le 07-11-2013 à 07:20:45  profilanswer
 

bonjour,
 
je suppose que tu es sous oracle (tablespace)... Il est vrai qu'en oracle, la logique veut que ce soit le commit qui soit efficace et le rollback plus lent.
 
Après un rollback d'un million de ligne "d'un coup" est potentiellement lourd en temps mais si le segment d'undo est suffisamment "sizé" ça ne doit pas peter plus que ça pour moi, c'est plus une question d'impact sur les perfs ...
 
Par contre je ne vois pas en quoi un bulk collect peut aider en quoi que ce soit, c'est juste un mode de "lecture" des données d'origines, pas de gestion de la destination.
 
Mes questions sont :
- y a-t-il des données "pré-existantes" dans la table de destination ?
- quelle est le pb de "consistance" si pendant un temps le "reste" du monde voit les données des 900k lignes (si commit par palier de 100k) en attendant la reprise des "100k" restant ?
- as-tu pensé à utiliser une partition pour chaque nouvel "import" (dont la clé de partitionnement est un id d'import par exemple comme une date) ? mais ça impose de changer la structure de la table (ajout de la colonne pour la clé et passage en partitionné) mais permet d'isoler les données importées et de remplacer le rollback par un drop partition. Il existe aussi le "partition exchange" qui permet de "migrer" une partition d'une table à une autre (pour peu qu'elles aient la meme structure) et ainsi faire un import en "one shot"
 
Mais c'est difficile de proposer des choses sans connaitre les contraintes opérationnelles...
 
Qu'en pensez vous ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  gestion d erreur, rollback

 

Sujets relatifs
Aide pourde la gestion de base de données sans AccesErreur 500 NullPointerException
erreur MSQL sur mon site[XLib] Gestion des fenêtres filles sans XQueryTree
Recherche developpeurs pour jeu de gestionGestion du temps entre deux commandes?
[VBS] Erreur lancement script VBSGestion des timestamps + TZ sur stack Java (appli + DB)
Gestion des pointeurs sur instanceerreur de segmentation sur matrice
Plus de sujets relatifs à : gestion d erreur, rollback


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR