Oracle database change notification feature envía rowids (direcciones de filas físicas) en las inserciones, actualizaciones y eliminaciones de filas. Tal como se indica en la documentación del oráculo, la aplicación puede usar esta función para crear una memoria caché de nivel medio. Pero esto parece contradecirse cuando tenemos una mirada detallada sobre cómo funcionan las identificaciones de fila.Oracle Database Change Notification y ROWID
Las direcciones de filas físicas (ROWID) pueden cambiar cuando se realizan varias operaciones de la base de datos como se indica en this stackoverflow thread. Además de esto, como tom menciona en este thread, las tablas agrupadas pueden tener los mismos rowids.
Basado en la investigación anterior, no parece ser seguro usar el rowid enviado durante la notificación de cambio de base de datos como la clave en el caché de la aplicación, ¿verdad? Esto también genera una pregunta sobre: ¿Debería utilizarse la función de notificación de cambio de base de datos para generar un caché de servidor de aplicaciones? o ¿se hace una recomendación para reiniciar todos los clústeres de servidores de aplicaciones (para volver a cargar/actualizar la caché) cuando las tablas de los objetos en caché se someten a cualquier operación que provoque que rowid's cambie? ¿Sería una buena suposición para entornos de producción?
¿Por qué no confía en entidades comerciales/atributos de dominio? – zerkms
No entendí completamente su recomendación. Con la notificación de cambio de base de datos, Oracle solo envía números de fila para las filas insertadas/actualizadas. No se puede configurar para proporcionar otra información de columna en esa tabla. –
sí, y ¿por qué no crea una capa de almacenamiento en caché sobre su capa de acceso a datos, basándose en datos comerciales, no relacionados con el almacenamiento? ¿Crees que puedes almacenar en caché los datos mejor que Oracle? – zerkms