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)