sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo sabe SqlCacheDependency cuándo comunicarse con los oyentes cuando cambian los datos en una tabla?

Se crea una nueva tabla en su base de datos que contiene el nombre de la tabla en la que desea verificar las actualizaciones y un número de cambio. Cada tabla que ha configurado para sqldependency tiene un activador configurado para actualizaciones/inserciones que incrementa el changeid en la nueva tabla que acabo de describir.

Su modelo mental de cómo funciona esto es al revés. Su aplicación verifica el registro para determinar si una tabla ha cambiado.

Entonces, si la tabla de registro de cambios (así es como la llamo) está rastreando dos tablas en su base de datos (Producto, Usuario), se verá así.

+Table Name + ChangeNumber +
| Product   | 1            |
+-----------+--------------+
| User      | 1            |
+-----------+--------------+

Ahora, si modifica algo en cualquiera de estas tablas, el activador incrementará ChangeNumber y ahora sabemos que cambiaron.

Obviamente hay más en esto, pero esta es la idea general.

Nota:Debe tenerse en cuenta que puede invalidar una página si una o más tablas cambian, por lo que si su página tiene una dependencia configurada para ambas tablas, si una de ellas cambia, invalidará la página almacenada en caché y volverá a almacenar en caché una actualizada. versión.