Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2007, 09h37   #1
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Par défaut UNDO_RETENTION très élevé

Bonjour,

Je suis en train de réfléchir au fonctionnement des UNDO. Quel effet de bord peut on craindre d'un UNDO_RETENTION très élevé (10000 heures par exemple) tant qu'on mets du disque pour le UNDO.

A mon avis, on "pervertit" le mécanisme en créant trop de segment de rollback (donc baisse de perf) et je ne suis pas convaincu qu'on ne peut pas avoir de ora-01555. Comme toute médaille à son revers, je cherche celui du UNDO

Quelqu'un aurait une doc ou l'expérience de undo_retention excessivement élevé ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2007, 10h17   #2
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Quelle est la version exacte d'Oracle ?
Est-ce que le tablespace UNDO est en mode auto-extend ou non ?
Pour la 10GR2: http://download-uk.oracle.com/docs/c...htm#sthref1477
Est-ce que la tablespace UNDO est créé avec la clause RETENTION GUARANTEE ou non ?

Il y avait déjà pas mal de discussion autour de ce sujet:
http://www.developpez.net/forums/sho...undo_retention
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2007, 10h21   #3
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
attention, ce sujet est une réflexion

Je cherche juste à savoir, quels effets néfastes pourraient avoir un UNDO_RETENTION trop élevé en imaginant que la taille du UNDO peut être illimité
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2007, 23h06   #4
Membre Expert
 
Inscription : avril 2006
Messages : 1 024
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1 024
Points : 1 175
Points : 1 175
Ben il te faut simplement un tablespace ennorme, et plus ta base est rapide et souvent utilisée, plus ça doit etre ennorme... sinon je vois en quoi ça dégraderait les perfs...
remi4444 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2007, 10h43   #5
Membre du Club
 
Inscription : novembre 2006
Messages : 190
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 190
Points : 67
Points : 67
Bonjour
Fred_D je veux me renseigné sur ton sujet et je veux un document ou un tuto pour comprendre ta question est ce c'est possible
daliok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2007, 10h55   #6
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Depuis on a réfléchit entre collégues

L'un d'eux nous a fourni cet algo :
Citation:
when trying to allocate a new extent for SMU in UNDO tablespace :
1. A new extent will be allocated from the undo tablespace.
2. If failed, ( no free space exists in the tablespace ) acquire expired extent from another undo segment.
This involves shrinking from the other segment and adding to the current undo segment.
3. If failed, reclaim expired extents from the current transaction's commited changes.
4. If failed, try allocating more space by datafile extention ( if autoextend ON ).
5. If failed, try reuse an unexpired extent from the current undo segment.
6. If failed, try stealing an unexpired extent from another undo segment.
7. If all failed, report an "Out-Of-Space" error.
Ainsi, si undo_retention très très grand (10000 jours ) tant qu'il y a de la place dans le UNDO on ne peut pas avoir de snapshot too old. Par contre, la place étant toujours limité, le risque d'avoir un undo_retention trop élevé est tout simplement qu'il n'y a plus d'extent EXPIRED et qu'Oracle va utilser le UNEXPIRED quand le UNDO sera plein... donc risque de ora-01555.

Conclusion : tant que le UNDO n'est pas utilisé on peut augmenter le undo_retention. En revanche, on doit le redescendre si on rempli le UNDO.
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/07/2010, 16h11   #7
Membre à l'essai
 
Inscription : février 2009
Messages : 122
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 122
Points : 21
Points : 21
Pour rebondir, 3 ans après sur cette discussion

Que pensez vous de cette formule :
Code :
Optimal Undo Retention = Actual Undo Size / (DB_BLOCK_SIZE * UNDO_BLOCK_PER_SECOND)
Guigsounet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2010, 15h31   #8
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
J'en pense que si ça se réglait avec une formule, le paramètre n'aurait pu lieu d'être Mais c'est une bonne base pour savoir comment tailler son UNDO
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h35.


 
 
 
 
Partenaires

Hébergement Web