Partager via


Contrôler le comportement de verrouillage de la base de données

Important

Ce contenu est archivé et n’est pas mis à jour. Pour accéder aux dernières ressources documentaires, voir Nouveautés et prévisions pour Dynamics 365 Business Central. Pour les derniers plans de lancement, voir Plans de lancement pour Dynamics 365, Power Platform et Cloud for Industry.

Activé(e) pour Version préliminaire publique Disponibilité générale
Administrateurs, créateurs, responsables marketing ou analystes, automatiquement 1er mars 2023 1er avril 2023

Valeur commerciale

Le verrouillage de la base de données est l’une des principales causes des problèmes de performances. Si le code AL accepte moins de verrous, cela améliore les performances du système pour les utilisateurs.

Détails de la fonctionnalité

Par défaut, le runtime de Business Central détermine automatiquement les niveaux d’isolation utilisés pendant l’interrogation de la base de données. Les développeurs AL peuvent désormais contrôler explicitement le niveau d’isolation de la base de données sur les lectures individuelles d’une instance d’enregistrement.

Une nouvelle méthode ReadIsolation a été introduite sur le type de données d’enregistrement. La méthode a la syntaxe suivante :

rec.ReadIsolation := IsolationLevel::<enum value>

La méthode peut également être appelée à l’aide de la syntaxe d’accès à la propriété.

Le tableau suivant décrit les valeurs IsolationLevel possibles :

Valeur Description
Valeur par défaut Suit le niveau d’isolation de la table pour les lectures ; même comportement que de ne pas définir IsolationLevel.
ReadCommitted Permet de lire les données confirmées uniquement, mais pas les données qui ont été modifiées par d’autres transactions mais qui ne sont pas encore confirmées.
ReadUncommitted Permet à l’enregistrement de lire les données modifiées par les autres transactions mais pas encore confirmées (également appelées lectures modifiées). Une transaction ReadUncommitted n’accepte aucun verrou et ignore les verrous des autres transactions.
RepeatableRead Garantit que les lectures restent stables pendant toute la durée de vie de la transaction en cours. Tant que la transaction en cours n’est pas terminée, l’enregistrement ne peut pas lire les données modifiées mais pas encore confirmées par les autres transactions, et les autres transactions ne peuvent pas modifier les données lues par la transaction en cours.
UpdLock Garantit que les lectures restent cohérentes pendant toute la durée de vie de la transaction en cours. Tant que la transaction en cours n’est pas terminée, l’enregistrement ne peut pas lire les données modifiées mais pas encore confirmées par les autres transactions, et les autres transactions avec le même niveau d’isolation ne peuvent pas lire les données lues par l’enregistrement en cours.

Voir aussi

Enregistrer le niveau d’isolement de l’instance (documents)