Bloqueo Ex_table en Sybase 11.9

¿Alguien ha visto un caso en que se producen bloqueos Ex_table al realizar un update de una tabla si la sesión termina anormalmente?

1> sp_lock
2> go
fid spid  locktype      table_id    page          row      dbname    class                     context
———————————————————————————————————————————————
0    40    Ex_table   1639020      0               0         testdb      Non Cursor Lock

 

Hemos estado experimentando este tipo de bloqueos que han aparecido recientemente. Hay una tabla principal que se queda bloqueada y que impide el trabajo normal de los usuarios. La query que vemos reflejada es del tipo:

Update tabla set campo3=’literal’ where campo2=numero and campo1<>numero

Al analizar el estado de la sesión abortada se podía ver que estaba en espera de nuevos comandos por parte del cliente por lo que el bloqueo persistía en base de datos. Se realizaron varias pruebas en las que estaban incluidas la reconstrucción de los índices de la tabla, actualizar las estadísticas, etc, sin conseguir que el rendimiento fuera correcto. El efecto observado era como ejecutar “lock table tabla in exclusive mode” sobre la misma.

 

Al analizar la sentencia nos dimos cuenta que el índice estaba creado sobre el campo1 (primary key), mientras que la condición del update estaba basado en campo2. La cardinalidad del campo era del 90%, por lo que se decidió crear un índice no único sobre el mismo.

Al volver a probar la query, el bloqueo se convierte en Ex_page, por lo que se resuelve la incidencia.

1> sp_lock
2> go
fid spid  locktype      table_id    page          row      dbname    class                     context
———————————————————————————————————————————————
0    40    Ex_page   1639020  39029760    0         testdb      Non Cursor Lock   Fam dur

 

Parece que al realizar full table scan del objeto en cuestión se producía este tipo de bloqueo y la creación del índice “relaja” el nivel de bloqueo necesario en el motor de base de datos.

 

Esperamos que os sea útil si tenéis un problema similar.

 

 

Uso de cookies

GPS Open Source, S.L, le informa que este sitio web utiliza Cookies tanto propias como de terceros para facilitar la navegación y para recopilar información estadística sobre su navegación. Si pulsa aceptar o continúa navegando entenderemos que acepta la instalación de las mismas. Más Info, política de cookies

ACEPTAR
Show Buttons
Hide Buttons