Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как SqlCacheDependency знае кога да съобщи обратно на слушателите, когато данните в таблица се променят?

Във вашата база данни се създава нова таблица, която съдържа име на таблицата, която искате да проверите за актуализации, и номер на промяна. Всяка таблица, която сте настроили за sqldependency, има тригер, настроен за актуализации/вмъквания, който увеличава changeid в новата таблица, която току-що описах.

Вашият умствен модел за това как работи това е назад. Вашето приложение проверява регистрационния файл, за да определи дали дадена таблица е променена.

Така че, ако таблицата с регистър на промените (така я наричам) проследява две таблици във вашата база данни (продукт, потребител), ще изглежда така.

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

Сега, ако промените нещо в някоя от тези таблици, тригерът ще увеличи ChangeNumber и сега знаем, че са се променили.

Очевидно има нещо повече в това, но това е общата идея.

Забележка:Трябва да се отбележи, че можете да направите невалидна страница, ако една или повече таблици се променят, така че ако вашата страница има зависимост, настроена и за двете таблици, ако една от тях се промени, това ще направи невалидна кешираната страница и ще кешира отново актуализирана версия.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте географска полилиния от точки в T-SQL

  2. Как работи функцията SPACE() в SQL Server (T-SQL)

  3. Изчисляване на сбор от стойности в дърво (рекурсивна заявка)

  4. Как да извлечете броя на редовете за всички таблици в база данни на SQL SERVER

  5. Кога е по-добре да съхранявате флагове като битмаска, вместо да използвате асоциативна таблица?