Quantcast
Channel: José Arrarte » José Arrarte | » base de datos
Viewing all articles
Browse latest Browse all 7

Lock modes de tablas de Informix

$
0
0

El lock mode de una tabla especifica el nivel de granularidad que se tendrá para acceder a los datos de forma concurrente. Hay 3 niveles: por tupla (row), por página (page), o por tabla (table).

Al menos que se explicite, al crear una tabla el modo de bloqueo (lock mode) será por página. Si la tabla tiene muchos accesos concurrentes, se puede aumentar la granularidad y usar el modo de bloqueo a nivel de tupla. Este aumento de la granularidad conlleva a un aumento en la cantidad de objetos bloqueados que se deben mantener, lo que redunda en mayor uso de memoria y una posible baja de performance del motor.

Un nivel de bloqueo por tupla sirve cuando se actualizan pocas tuplas de una tabla, o cuando es necesario actualizar de forma concurrente (desde distintas sesiones) distintas tuplas de la misma página. En este caso, si los bloqueos son por página, es posible que las actualizaciones fallen, o tengan que
esperar que se termine de actualizar una tupla de la misma página.

El tipo de bloqueo por tabla utiliza menos recursos que los bloqueos por página o tupla. Este tiplo de bloqueo se pueden utilizar en procesos batch, cuando es un único proceso que accede a cada tabla de la base de datos. De deben tener recaudos con este bloqueos de tablas en sistemas de tipo OLTP. Ante un bloqueo de una tabla, otros procesos de sólo lectura igual podrán acceder a los datos de la misma.

Para obtener la información acerca del tipo de bloqueo que tienen las tablas de una base podemos ejecutar la sigiuente consulta:

SELECT tabname,locklevel FROM systables WHERE tabid>99

La columna tabname contiene el nombre de la tabla, la columna locklevel contiene ‘P’ si el lock mode es por página, o ‘R’ si es por tupla.

Para crear una tabla con un lock mode determinado lo especificamos al ejecutar el comando CREATE TABLE:

CREATE TABLE customer(customer_num serial, lname char(20)...)
LOCK MODE ROW|PAGE|TABLE;

Para cambiar el lock mode de una tabla utilizamos el comando ALTER TABLE:

ALTER TABLE [tabla]
MODIFY LOCK MODE (PAGE|ROW|TABLE)

The post Lock modes de tablas de Informix appeared first on José Arrarte.


Viewing all articles
Browse latest Browse all 7