Serialización y puesta en cola de transacciones simultáneas, transacciones explícitas

Una transacción explícita es aquella que se enmarca dentro de una sentencia ' BEGIN '. Si el sistema alcanza un límite de 63 transacciones concurrentes de lectura/escritura, las solicitudes de nuevas transacciones enmarcadas por una sentencia ' BEGIN ' se ponen en cola hasta que las transacciones concurrentes caen por debajo de 63, momento en el que se permiten las operaciones de modificación de datos.

Una transacción explícita de sólo lectura que emite sólo sentencias ' SELECT ' también se pone en cola a menos que se ejecute una ' SET SESSION READ ONLY ' en la sesión antes de la sentencia ' BEGIN '.

La siguiente tabla resume las diferencias en la respuesta del sistema al poner en cola transacciones implícitas y explícitas cuando el número de transacciones de lectura/escritura alcanza 63. En la tabla, tenga en cuenta los siguientes significados de los símbolos.

  • X = inicia la ejecución
  • E = mensaje de error
  • Q = colas de solicitudes
Tabla 1. La 64ª transacción de lectura/escritura en cola
  Implícito Explicit begin_queue_if_full=T (predeterminado) Explicit begin_queue_if_full=T set session read only Explicit begin_queue_if_full=F
BEGIN No aplicable Q X (solo lectura) X (solo lectura)
SELECCIONAR X X (después de que BEGIN continúa) X X
CREAR X X E E
CREATE TABLE AS X X E E
DESCARTAR X X E E
TRUNCATE X X E E
INSERTAR Q X E E
ELIMINAR Q X E E
UPDATE Q X E E
CREATE/MODIFY TEMPORARY TABLE X X X X