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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Vider les rollback segment en Oracle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Vider les rollback segment en Oracle

n°962901
lapin21
Posté le 26-01-2005 à 16:37:17  profilanswer
 

Bonjour,
 
je me trouve confronté à un problème de taille de rollback segment.
Je fais passer un script SQL où j'enchaine les delete sur de grosses tables, mais systématiquement mon rollback segment se retrouve plein pendant l'exécution et la fait planter.
J'ai bien essayé d'insérer un commit après chaque delete mais cela ne vide pas le rollback segment.
 
Merci si quelqu'un sait comment faire (de préfèrence une commande Oracle).

mood
Publicité
Posté le 26-01-2005 à 16:37:17  profilanswer
 

n°963393
Beegee
Posté le 27-01-2005 à 09:38:45  profilanswer
 

"J'ai bien essayé d'insérer un commit après chaque delete mais cela ne vide pas le rollback segment."
 
Il me semble que ça doit le vider, mais par contre il est probable que l'un de tes DELETE est trop gros ...
Essaye de le découper en plus petits DELETE en rajoutant des conditions (where ID between ... and ... par exemple).

n°963487
thecoin
Chasseur de chasseur de canard
Posté le 27-01-2005 à 10:51:52  profilanswer
 

Il n'existe pas de commande pour faire un fluh du rollback segment. Normalement un commit doit le vider. Soit modifies tes requêtes comme le suggère Beegee ou augmente la taille du rolllback segment.

n°963507
Beegee
Posté le 27-01-2005 à 11:03:00  profilanswer
 

En général il vaut mieux avoir une procédure qui fait des commit régulièrement pour éviter que dans le futur, le problème se re-pose parce qu'il y aura plus de données :)
 
Si la taille des données devrait être en gros constante, alors augmenter la taille du rollback_segment ou couper le DELETE en un nombre fini de DELETE devrait faire l'affaire.

n°969795
lapin21
Posté le 02-02-2005 à 18:20:46  profilanswer
 

Ok merci. Finalement j'ai augmenté la taille des rollback segment, j'avais pas pensé à découper les delete avec les id, en ayant un certain nombre dans mon script....


Message édité par lapin21 le 02-02-2005 à 18:21:48
n°969798
pains-aux-​raisins
Fatal error
Posté le 02-02-2005 à 18:22:01  profilanswer
 

sinon tu peux faire un truncate (en pensant au préalable à sauvegarder les données à ne pas effacer)

n°970233
Arjuna
Aircraft Ident.: F-MBSD
Posté le 03-02-2005 à 10:00:02  profilanswer
 

D'ailleurs, si les delete font bêtement un vidage des tables, il vaut mieu faire un truncate, car c'est infiniement plus rapide (car non rollbackable, et surtout, ça met pas les index à jour au fur et à mesure)


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

  Vider les rollback segment en Oracle

 

Sujets relatifs
Recherche par date sur Oracle 10g.Oracle - Gestion de la BDD & interfacage C++
Compatibilité Oracle 8i (8.0.5)[Oracle][admin] Comment augmenter le nombre de curseur ???
[Oracle 8i] Erreur ORA 02352 - Aidez moi ;o))Probleme sauvegarde avec Oracle 9i
[JDBC][SQL3][Oracle] récupérer un objet de la base[ORACLE] Trigger renvoyant un simple Warning
oracle - mailOracle - variable globale
Plus de sujets relatifs à : Vider les rollback segment en Oracle


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