RESERVING
La clause RESERVING
de l’instruction SET TRANSACTION
réserve les tables spécifiées dans la liste.La réservation interdit aux autres transactions d’apporter des modifications à ces tables ou (sous certains paramètres de caractéristique de la phrase de réservation) même de lire les données de ces tables pendant que cette transaction est en cours d’exécution.Alternativement, dans cette proposition, vous pouvez spécifier une liste de tables qui peuvent être modifiées par des transactions concurrentes même si une transaction de niveau d’isolation SNAPSHOT TABLE STABILITY
est lancée.
Vous pouvez spécifier un nombre arbitraire de tables réservées de la base de données utilisée dans une seule phrase de redondance.
Si l’un des mots-clés SHARED
ou PROTECTED
est omis, SHARED
est supposé.Si la phrase entière FOR
est omise, FOR SHARED READ
est supposé.Les options de mise en œuvre des réservations de tables par leur nom ne sont pas évidentes.
|
SHARED READ |
SHARED WRITE |
PROTECTED READ |
PROTECTED WRITE |
SHARED READ |
oui |
oui |
oui |
oui |
SHARED WRITE |
oui |
oui |
non |
non |
PROTECTED READ |
oui |
non |
oui |
non |
PROTECTED WRITE |
oui |
non |
non |
non |
Pour une transaction s’exécutant en mode d’isolation SNAPSHOT
pour les tables spécifiées dans la phrase RESERVING
, les comportements suivants sont autorisés dans les transactions concurrentes en fonction de leur niveau d’isolation avec différentes méthodes de réservation :
-
SHARED READ
— n’a aucun effet sur l’exécution de transactions concurrentes ; -
SHARED WRITE
— n’a aucun effet sur le comportement des transactions parallèles avec les niveaux d’isolationSNAPSHOT
etREAD COMMITTED
; pour les transactions avec le niveau d’isolationSNAPSHOT TABLE STABILITY
, il interdit non seulement l’écriture mais aussi la lecture des données des tables spécifiées ; -
PROTECTED READ
- permet uniquement de lire les données des tables réservées pour les transactions simultanées avec n’importe quel niveau d’isolation ; toute tentative de modification entraîne l’exclusion de la base de données ; -
PROTECTED WRITE
— pour les transactions parallèles avec les niveaux d’isolationSNAPSHOT
etREAD COMMITTED
, il interdit l’écriture dans les tables spécifiées ; pour les transactions avec le niveau d’isolationSNAPSHOT TABLE STABILITY
, il interdit également la lecture des données de la table de réservation.
Pour une transaction démarrée dans le mode d’isolation SNAPSHOT TABLE STABILITY
pour les tables spécifiées dans la phrase RESERVING
, dans les transactions parallèles, selon leur niveau d’isolation, les variantes de comportement suivantes sont acceptables aux différentes méthodes de leur réservation :
-
SHARED READ
— permet à toutes les transactions concurrentes, quel que soit leur niveau d’isolation, non seulement de lire mais aussi d’effectuer des modifications dans les tables réservées (si la transaction concurrente a le mode d’accèsREAD WRITE
) ; -
SHARED WRITE
— pour toutes les transactions concurrentes avec le niveau d’accèsREAD WRITE
et avec les niveaux d’isolationSNAPSHOT
etREAD COMMITTED
, il permet de lire les données des tables et d’écrire les données dans les tables spécifiées ; pour les transactions avec le niveau d’isolationSNAPSHOT TABLE STABILITY
, il interdit non seulement d’écrire mais aussi de lire les données des tables spécifiées ; -
PROTECTED READ
- permet de lire uniquement les données des tables réservées pour les transactions parallèles avec n’importe quel niveau d’isolation ; -
PROTECTED WRITE
— pour les transactions parallèles avec le niveau d’isolationSNAPSHOT
etREAD COMMITTED
, il interdit l’écriture dans les tables spécifiées ; pour les transactions avec le niveau d’isolationSNAPSHOT TABLE STABILITY
, il interdit également la lecture des données des tables de réservation.
Pour une transaction démarrée dans le mode d’isolation READ COMMITTED
pour les tables spécifiées dans la phrase RESERVING
, dans les transactions parallèles, en fonction de leur niveau d’isolation, les variantes de comportement suivantes sont acceptables aux différentes méthodes de leur réservation :
-
SHARED READ
— permet à toutes les transactions concurrentes, quel que soit leur niveau d’isolation, non seulement de lire mais aussi d’effectuer toute modification dans les tables réservées (au niveau d’accèsREAD WRITE
) ; -
SHARED WRITE
— pour toutes les transactions avec le niveau d’accèsREAD WRITE
et avec les niveaux d’isolationSNAPSHOT
etREAD COMMITTED
, il autorise la lecture et l’écriture de données dans les tables spécifiées ; pour les transactions avec le niveau d’isolationSNAPSHOT TABLE STABILITY
, il interdit non seulement l’écriture mais aussi la lecture de données depuis les tables spécifiées ; -
PROTECTED READ
— permet seulement de lire les données des tables réservées pour les transactions parallèles avec n’importe quel niveau d’isolation ; -
PROTECTED WRITE
— pour les transactions parallèles avec les niveaux d’isolationSNAPSHOT
etREAD COMMITTED
, permet uniquement la lecture des données et interdit l’écriture dans les tables spécifiées dans cette liste ; pour les transactions avec le niveau d’isolationSNAPSHOT TABLE STABILITY
, il interdit non seulement la modification des données mais aussi la lecture des données des tables de réservation.
Tip
|
La proposition |