Envoyé par
scamphp
Bon la maille "table" et "ligne"...
Dans GG j'ai de superbes tables en ferronnerie avec grande ou petite maille... Il n'y a que maille qui maille
Une petite explication (niveau enfant de 14 ans... enfant normal... pas un génie)... du concept de maille page, maille table et maille ligne
Juste pour comprendre les notions...
Si le traitement T1 pose un verrou de niveau table : toute la table est verrouillée.
- Si ce verrou est de type mise à jour alors aucun autre traitement ne peut accéder à la table, ni en lecture*, ni en mise à jour, même si ces autres traitements accèdent à des lignes qui ne sont pas en cours de traitement dans T1.
- Si ce verrou est de type lecture, alors seuls les traitements qui veulent lire la table peuvent y accéder, les autres ne le peuvent pas, là encore, même si les lignes accédées par ces autres traitements sont sans rapport avec celles traitées dans T1
Si le traitement T1 pose un verrou de niveau ligne : seule la ligne en cours de traitement est verrouillée, les traitements concurrents peuvent accéder aux autres lignes*, en lecture comme en mise à jour.
Une page selon sa taille et la taille de chaque ligne contient un certain nombre de lignes, par exemple, une page de 4k contient en théorie 40 lignes de 100 octets, en réalité ce seront 39 ou 38 lignes car quelques octets techniques sont nécessaires à la gestion de chaque page et chaque ligne dans la page. Donc, dans cet exemple, un verrou en lecture de niveau page dans T1 bloquera l'accès en mise à jour aux autres traitements pour une petite quarantaine de lignes.
Un verrou de niveau ligne est en général la bonne solution pour un traitement unitaire, type TP.
Un verrou de niveau page est la bonne taille pour les traitements par lots
Les verrou de niveau table et tablespace sont utilisés dans des cas particuliers où l'on souhaite interdire tout accès pendant le traitement et/ou éviter le phénomène de "lock escalation"
* c'est en réalité plus compliqué que ça : le niveau d'isolation de chaque transaction et la mise en oeuvre des commits entrent également en jeu
Partager