Tecnología

Inicio

Cómo crear bloqueos en DB2

Cómo crear bloqueos en DB2


Cerraduras se producen en el servidor de datos IBM DB2 cada vez que realice una consulta, insertar, actualizar o eliminar. Las mesas tienen un parámetro "LOCKSIZE" que puede afectar de bloqueo. El ajuste de la tabla de "tamaño de bloqueo ANY" DB2 permite elegir el tamaño de la cerradura, por lo general la adquisición de bloqueos de página. Las instrucciones de consulta SQL pueden afectar de bloqueo mediante el establecimiento de un "nivel de aislamiento" al comienzo de la transacción. Incluso cuando se concede una cerradura específica, DB2 puede promover o aumentar el bloqueo; Por lo tanto, es necesario entender cómo maneja DB2 de bloqueo cuando la escritura de aplicaciones de bases de datos. Los programadores pueden establecer el nivel de bloqueo para mejorar el rendimiento de base de datos con el comando "LOCK TABLE", sin embargo.

Instrucciones

1 Bloquear la tabla entera en modo compartido o modo exclusivo. Ejecutar "LOCK TABLE myTable en modo exclusivo" (sustituir "myTable" con el nombre de la tabla de DB2) para mantener el bloqueo en toda la tabla hasta que la transacción se ha completado. Este modo evita que otros usuarios accedan a la mesa hasta que suelte el bloqueo.

2 Ejecutar "LOCK TABLE myTable IN SHARE MODE" para permitir el acceso de sólo lectura a la mesa durante la transacción. Este modo mantiene los datos consistentes al tiempo que permite a los usuarios ver la misma. El comando "LOCK TABLE" puede mejorar el rendimiento y evitar "DEADLOCKS," mediante la creación de un bloqueo en toda la tabla en lugar de varios bloqueos de fila individuales.

3 Liberar el bloqueo usando "RELEASE (COMMIT)" o "RELEASE (DESASIGNAR)" --- sus dos opciones a la hora de ejecutar el "LOCK TABLE" declaración de SQL estático. "RELEASE (COMMIT)" va a liberar el bloqueo después de la ejecución de un "COMMIT" comunicado. "RELEASE (DESASIGNAR)" va a liberar el bloqueo cuando la aplicación termina.

4 Liberar el bloqueo cuando se ejecuta el "LOCK TABLE" declaración de SQL dinámico con "RELEASE (COMMIT)". Si está utilizando el almacenamiento en caché, DB2 mantiene comandos preparados en la memoria después de un "COMMIT"; Por lo tanto, debe anular la planificación de la cerradura o ejecutar un "COMMIT" después de las declaraciones preparadas ya no están en la memoria para liberar el bloqueo.

Consejos y advertencias

  • No se puede utilizar un "COMMIT" en un procedimiento almacenado si dicho procedimiento se encuentra en la cadena de llamada de una función definida por el usuario o un activador.