Este documento resume algunos puntos importantes soble el mantenimiento requerido por los diferentes tipo de bloqueos de ASE.
Como sabemos existen 3 tipos de bloqueo para ASE
- Allpages (APL)
- Datapages (DPL)
- Datarows (DRL)
Los esquemas de bloqueo Datapages y Datarows también se conocen como esquemas de bloqueo DOL (Data Only Locking).
Cada uno de esto tipo de bloqueos funcionan de forma diferente.
Esquema de Bloqueo Allpages
En una tabla APL se bloquean las páginas de índices y las páginas de datos. Para operaciones de modificación los bloqueos exclusivos se mantienen hasta el final de la transacción.
Esquema de Bloqueo Datapages
Permite que no se bloqueen páginas de índices durante la duración de las transacciones, así que hay un nivel más alto de concurrencia que en el esquema Allpages. Generalmente, las páginas de índices quedan disponibles para que otras transacciones escriban o lean sobre ellas.
Esquema de Bloqueo Datarows
Permite que sólo filas de tablas sean bloqueadas, lo que proporciona el nivel más alto de concurrencia. Cuando un gran número de filas están siendo actualizadas, el bloqueo a nivel de fila puede resultar en un mayor número de bloqueos (locks) requeridos. Sin embargo, las transacciones típicamente afectan una o dos filas a la vez; en estos casos el bloqueo a nivel de fila puede generar menos bloqueos que en el bloqueo a nivel de página.
¿Como realiza ASE el mantenimiento de espacio libre para los distintos esquemas de bloqueo?
Mantenimiento de espacio para tablas APL
El espacio libre dentro de una página de una tabla APL siempre es contiguo. Si una fila dentro de una página APL es borrada o su tamaño cambia, las filas restantes se mueven para reorganizar el espacio libre.
Mantenimiento de Espacio para tablas DOL
El espacio libre dentro de una página de una tabla DOL no siempre es mantenido como un bloque contiguo. Si una fila es borrada, se "marca" como borrada, pero no es borrada físicamente (ocurre un "borrado lógico"). Si el tamaño de la fila disminuye, el espacio que antes ocupada no es reclamado inmediatamente. En ambos casos, lo que queda de la fila (el espacio que ésta ocupaba dentro de la página) se convierte en "basura".
Exactamente, qué impacto tienen las tablas DOL sobre el rendimiento de ASE
Las tablas APL siempre requerirán recursos del sistema para:
-
Reclamar de manera inmediata el espacio libre.
- Acomodar en páginas nuevas filas cuyo tamaño varió como producto de una modificación y que no se pudieron acomodar en la página original.
- Mantener el ordenamiento de las páginas de datos según la llave de un índice cluster.
De otro lado, las tablas DOL pueden brindar un mejor rendimiento, ya que no usan recursos del sistema para reclamar espacio libre de manera inmediata, ni realizan mantenimiento de las páginas de datos de un índice cluster.
En consecuencia, con el tiempo las páginas DOL pueden tener bajo rendimiento, ya que una cantidad significativa de basura se puede generar a partir de filas borradas o desplazadas (esto se conoce como "fragmentación" de datos). En consecuencia, puede que sea necesaria una mayor cantidad de operaciones de lectura/escritura para leer las filas de una tabla.
Podemos concluir que las tablas APL no son fragmentadas tan rápidamente como sucede con las tablas DOL, por lo que es importante siempre mantener un revision del estado de fragmentación de las table e indices.