Académique Documents
Professionnel Documents
Culture Documents
PLAY
TRANSACTIONS & ISOLATION
PLAY
1
22/02/2021
• Conséquences :
PLAY
Lecture sale
Lecture non reproductible
Lecture fantôme
Dirty read
Une transaction lit une donnée écrite par une transaction qui n’a
pas encore validé.
PLAY
2
22/02/2021
PLAY
Lecture fântome
Deux évaluations de la même requête donnent des résultats
différents, car une autre transaction a inséré de nouveaux
nuplets entretemps
PLAY
4 enregistrements
inconhérentes
3
22/02/2021
PLAY ?
SET TRANSACTION
PLAY
4
22/02/2021
PLAY
Pour toutes les transactions à venir (dans une session)
• Utilisation
Peu de transactions concurrentes
5
22/02/2021
PLAY
•Utilisation :
– grandes BD avec nombreuses transactions courtes et mises à jour de
quelques n uplets seulement.
– Peu de transactions concurrentes (modifiant les même données)
– Lorsque les transactions longues sont essentiellement en lecture
Session 1 :
UPDATE authors
SET phone = ’01 23 45 67 89’ WHERE au_id = ‘123’
Session 2 : PLAY
SELECT * FROM authors
Pour lire le nuplet modifié par la session 1, la session 2 doit
attendre la fin de la transaction de la session 1.
6
22/02/2021
Verrouillage en Oracle
PLAY
7
22/02/2021
Verrous mortels
PLAY
Verrous de tuple
Une transaction acquiert un verrou exclusif pour chaque tuple modifié par
INSERT, UPDATE, DELETE, SELECT ...FOR UPDATE
PLAY
– Evitent les blocages des écritures par les lectures des mêmes données, sauf en cas
de SELECT ... FOR UPDATE
8
22/02/2021
Verrous de table
Une transaction acquiert un verrou de table pour chaque relation
modifiée par une instruction INSERT, UPDATE, DELETE
SELECT .. FOR UPDATE et LOCK TABLE.
Permet de réserver les accès du DML pour une transaction donnée et empêche
les opérations du DDL.
Plusieurs modes :
PLAY