Controlar el comportamiento de bloqueo de la base de datos

Importante

Este contenido está archivado y no se actualiza. Para obtener la documentación más reciente, vaya a Características nuevas y previstas para Dynamics 365 Business Central. Para conocer los últimos planes de lanzamiento, vaya a los planes de lanzamiento de Dynamics 365, Power Platform y Cloud for Industry.

Habilitada para Versión preliminar pública Disponibilidad general
Administradores, creadores, vendedores o analistas, automáticamente 1 de marzo de 2023 1 de abr. de 2023

Valor empresarial

El bloqueo de la base de datos es una de las causas raíz principales de los problemas de rendimiento. Cuando un código AL requiere menos bloqueos, aumenta el rendimiento del sistema para los usuarios.

Detalles de la característica

De forma predeterminada, el tiempo de ejecución de Business Central determina automáticamente los niveles de aislamiento que se utilizan al consultar la base de datos. Los desarrolladores de AL ahora pueden controlar explícitamente el nivel de aislamiento de la base de datos en lecturas individuales en una instancia de registro.

Se ha introducido un nuevo método ReadIsolation en el tipo de datos de registro. El método tiene la siguiente sintaxis:

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

El método también se puede invocar mediante la sintaxis de acceso a la propiedad.

En la siguiente tabla se describen los posibles valores de IsolationLevel:

Valor Descripción
Valor predeterminado Sigue el nivel de aislamiento de la tabla para lecturas; el mismo comportamiento que no establecer un IsolationLevel.
ReadCommitted Permite las lecturas solo en los datos confirmados, pero no en los datos que han sido modificados por otras transacciones y que no están confirmados.
ReadUncommitted Permite que el registro lea datos que otras transacciones han modificado, pero que aún no se han confirmado (también denominadas lecturas sucias). Una transacción ReadUncommitted no realiza bloqueos e ignora los bloqueos de otras transacciones.
RepeatableRead Garantiza que las lecturas se mantengan estables durante la vida de la transacción actual. Hasta que se complete la transacción actual, el registro no puede leer datos que otras transacciones hayan modificado pero no confirmado, y otras transacciones no pueden modificar datos que haya leído la transacción actual.
UpdLock Garantiza que las lecturas se mantengan uniformes durante la vida de la transacción actual. Hasta que se complete la transacción actual, el registro no puede leer datos que otras transacciones hayan modificado pero no confirmado, y otras transacciones con el mismo nivel de aislamiento no pueden leer los datos que haya leído el registro.

Consulte también

Registrar el nivel de aislamiento de la instancia (documentación)