TX: asignar entrada ITL explica cómo Oracle gestiona la concurrencia de datos y la consistencia de lectura dentro de los bloques de datos. Oracle reserva en el encabezado físico del bloque un área llamada Interested Transaction List ITL que contiene ranuras para transacciones. Cada transacción que desea bloquear o modificar una fila debe ocupar una ranura ITL en el bloque que contiene esa fila.

Una ranura ITL almacena metadatos de la transacción como el identificador de transacción XID, la dirección del bloque de undo UBA y un contador LCK con el número de filas que esa transacción ha bloqueado en ese bloque. Cada ranura pertenece a una única transacción y cada transacción puede ocupar como máximo una ranura por bloque. Al finalizar la transacción con COMMIT o ROLLBACK la ranura queda disponible para otras transacciones. El tamaño aproximado de cada ranura es de 24 bytes, y las direcciones físicas de fila ROWID no se almacenan en este espacio.

Los valores iniciales de ranuras se controlan con INITRANS a nivel de objeto. Por defecto INITRANS es 1 para tablas y 2 para índices. Oracle puede asignar ranuras adicionales automáticamente si el bloque dispone de espacio libre, hasta llegar a MAXTRANS. En versiones modernas MAXTRANS se considera 255 de forma efectiva y desde Oracle 9i habitualmente Oracle reserva dos ranuras ITL por bloque incluso cuando INITRANS se marca a 1.

Cuando una sesión modifica filas en un bloque, la ranura ITL de la transacción muestra el XID activo y el contador LCK incrementado por cada fila afectada en ese bloque. Tras el commit la ranura indica que la transacción quedó comprometida y el contador LCK refleja las filas alteradas. Si varias sesiones realizan modificaciones concurrentes sobre filas distintas del mismo bloque, Oracle añade nuevas ranuras ITL hasta agotar el espacio del bloque o alcanzar MAXTRANS.

El evento de espera enq: TX – allocate ITL entry aparece cuando una sesión intenta obtener una ranura ITL pero no puede porque se ha alcanzado el límite de ranuras o no hay espacio libre en el bloque para almacenar una nueva ranura. En escenarios de alta concurrencia y bloques con PCTFREE muy bajo es posible que las sesiones queden bloqueadas esperando una entrada ITL. Para diagnosticar estos casos se suelen inspeccionar volcados de bloque en trace y correlacionar XIDs con V$TRANSACTION, por ejemplo invirtiendo los bytes de XID con utilidades como UTL_RAW.REVERSE.

Dos mitigaciones habituales son aumentar PCTFREE para conservar espacio libre en los bloques para futuras actualizaciones e incrementar INITRANS para reservar más ranuras ITL iniciales; ambas acciones requieren reconstruir la tabla o el índice. Otra práctica preventiva es diseñar registros y distribución de filas para evitar agrupar demasiadas filas modificables en un solo bloque.

Existen escenarios de interbloqueo en los que, si dos bloques están llenos y dos transacciones ocupan la última ranura disponible en cada bloque, una petición cruzada puede generar un deadlock detectado por Oracle. El registro de alert log incluirá un trace con el grafo del deadlock que relaciona procesos, XIDs y bloques implicados.

Importante: las esperas por entrada ITL ocurren únicamente para operaciones UPDATE y DELETE. Para INSERT Oracle no provoca este tipo de espera: si un bloque no puede aceptar más ranuras o está lleno Oracle almacena la nueva fila en otro bloque disponible.

En Q2BSTUDIO ofrecemos asesoría y servicios para optimizar bases de datos Oracle y aplicaciones a medida, abordando tanto la capa de datos como la arquitectura de concurrencia y escalado. Somos una empresa de desarrollo de software y aplicaciones a medida con experiencia en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y soluciones de automatización. Si necesita desarrollar una solución personalizada podemos ayudarle con diseño de almacenamiento, optimización de bloques y estrategias para evitar esperas por ITL, consulte nuestra oferta de desarrollo de aplicaciones a medida en desarrollo de aplicaciones y software a medida.

Para proyectos que integren modelos de IA, agentes IA o inteligencia de negocio con visualización en power bi, Q2BSTUDIO puede implantar soluciones completas de ia para empresas, pipelines de datos y despliegue en la nube. Conectamos capacidades de inteligencia artificial con prácticas seguras de ciberseguridad y despliegues en servicios cloud aws y azure. Más información sobre nuestras soluciones de inteligencia artificial en servicios de inteligencia artificial para empresas.

Palabras clave: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.