sql >> Databasteknik >  >> RDS >> Sqlserver

Hur vet en SqlCacheDependency när den ska kommunicera tillbaka till alla lyssnare när data i en tabell ändras?

En ny tabell skapas i din databas som innehåller namnet på tabellen du vill kontrollera om det finns uppdateringar på, och ett ändringsnummer. Varje tabell du har ställt in för sqldependency har en triggerinställning för uppdateringar/infogningar som ökar ändrings-id:et i den nya tabellen jag just beskrev.

Din mentala modell av hur detta fungerar är bakvänt. Din applikation kontrollerar loggen för att avgöra om en tabell har ändrats.

Så om ändringsloggtabellen (det är vad jag kallar den) spårar två tabeller i din databas (produkt, användare) kommer den att se ut så här.

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

Om du nu ändrar något i någon av dessa tabeller kommer utlösaren att öka ChangeNumber och vi vet nu att de ändrades.

Uppenbarligen finns det mer i detta, men detta är den allmänna idén.

Notera:Det bör noteras att du kan ogiltigförklara en sida om en eller flera tabeller ändras, så om din sida har ett beroende inställt för båda dessa tabeller, om en av dem ändras kommer det att ogiltigförklara den cachade sidan och cachelagra en uppdaterad version.




  1. Hur ansluter jag mig till en tredje tabell i min SQL-sats som returnerar ett COUNT utan att förlora 0-posterna?

  2. MySQL:Hur kopierar man rader, men ändrar några fält?

  3. Linux-filsystem och riktmärken för PostgreSQL-kontrollpunkter

  4. PostgreSQL var allt i array