sql >> Databáze >  >> RDS >> Sqlserver

Jak SqlCacheDependency ví, kdy má komunikovat zpět se všemi posluchači, když se změní data v tabulce?

Ve vaší databázi se vytvoří nová tabulka, která obsahuje název tabulky, u které chcete zkontrolovat aktualizace, a číslo změny. Každá tabulka, kterou jste nastavili pro sqldependency, má nastavený spouštěč pro aktualizace/vložení, který zvyšuje changeid v nové tabulce, kterou jsem právě popsal.

Váš mentální model toho, jak to funguje, je obrácený. Vaše aplikace zkontroluje protokol, aby zjistila, zda se tabulka změnila.

Takže pokud tabulka changelog (tak tomu říkám) sleduje dvě tabulky ve vaší databázi (produkt, uživatel), bude to vypadat takto.

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

Pokud nyní v některé z těchto tabulek cokoli upravíte, spouštěč se zvýší o ChangeNumber a nyní víme, že se změnily.

Je toho samozřejmě více, ale toto je obecná myšlenka.

Poznámka:Je třeba poznamenat, že stránku můžete zrušit, pokud se změní jedna nebo více tabulek, takže pokud má vaše stránka nastavenou závislost pro obě tyto tabulky, pokud se jedna z nich změní, zneplatní se stránka uložená v mezipaměti a znovu se uloží aktualizované verze.




  1. pomocí proměnné prostředí pro místní konfiguraci sequelize

  2. Jak provést hromadné vložení v MySQL?

  3. SQL Server Maximální velikost řádku versus velikost Varchar (Max).

  4. Normalizace Unicode v Postgresu