Analizar y optimizar la simultaneidad
La simultaneidad se utiliza para controlar cuándo hay datos disponibles para otros procesos. Las aplicaciones de finanzas y operaciones utilizan dos modelos de simultaneidad:
- Control de simultaneidad pesimista (PCC): bloquea los registros en cuanto se recuperan de la base de datos.
- Control de simultaneidad optimista (OCC): bloquea los registros cuando se están actualizando.
El modelo PCC debe usarse cuando hay una lógica de serialización que requiere bloqueos en el registro o cuando es probable que haya conflictos de actualización.
OCC debe usarse en tablas donde mejora el rendimiento en comparación con PCC. Además, se prefiere OCC si la tabla se actualiza o elimina de un formulario y no de un código.
OCC presenta ventajas que ayudan a aumentar el rendimiento de la base de datos:
- Se utilizan menos recursos para bloquear registros durante las actualizaciones.
- Los registros se bloquean durante un período de tiempo más breve si se utiliza OCC en lugar de PCC.
- Los registros permanecen disponibles para otros procesos mientras se seleccionan desde la base de datos.
El inconveniente de usar OCC se presenta cuando dos procesos intentan actualizar el mismo registro a la vez. Cuando esto ocurre, la actualización falla, lo que puede provocar un rendimiento reducido de la base de datos si hay múltiples reintentos de actualización.
Todas las tablas estándar en las aplicaciones de finanzas y operaciones tienen un modelo de simultaneidad seleccionado y la mayoría de las tablas usan OCC. Puede establecer el modelo de simultaneidad en la propiedad de la tabla OccEnabled. También puede invalidar el modelo de simultaneidad de tablas en una instrucción Seleccionar. Después de la palabra clave Seleccionar se puede usar la palabra clave optimisticLock o pessimisticLock para sustituir a la palabra clave forUpdate.
