Administración del tamaño de las transacciones

Descargar controlador JDBC

Al trabajar con transacciones, es importante mantenerlas tan breves como sea posible. El modo predeterminado de confirmación automática, que puede habilitar o deshabilitar con el método setAutoCommit, confirmará cada acción en su lugar. Este es el modo más fácil en que trabajan la mayoría de los programadores.

Cuando use transacciones manuales, asegúrese de que el código confirma la transacción tan rápidamente como sea posible. Si se mantiene abierta una transacción, se impide que otros usuarios tengan acceso a los datos. Por ejemplo, una buena práctica de programación podría ser incluir una llamada a rollback en el bloque catch y una llamada a commit en un bloque finally. Sin embargo, esta práctica depende del diseño de la aplicación.

Mantenga el tamaño de las transacciones reducido para mejorar la simultaneidad. Por ejemplo, si inicia una transacción manual y modifica 10 000 filas en una tabla de 20 000, tendrá la mitad de la tabla bloqueada para todos los demás usuarios, aun cuando solo estén leyendo los datos. Si reduce las modificaciones a 2.000 filas, se deja disponible el 90 por ciento de la tabla.

Además, asegúrese de usar la configuración de tiempo de espera del bloqueo si su aplicación prevé que pueda haber problemas de bloqueo. Puede establecer el tiempo de espera usando el método setLockTimeout. El valor predeterminado del tiempo de espera para la exclusión es -1, lo que significa que el bloqueo se mantendrá indefinidamente mientras se espera la exclusión. Puede establecer el tiempo de espera del bloqueo en 30 segundos, lo que hará que la conexión bloqueada expire al cabo de 30 segundos si queda bloqueada por otra conexión.