Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

.NET SqlDependency z wieloma powiadomieniami a sondowaniem o wysokiej szybkości?

SqlDependency powiadomi Cię tylko o wystąpieniu zmiany i będziesz musiał ponownie przeczytać całą tabelę. Działa dobrze z niskim wskaźnikiem powiadomień. Przy wysokim wskaźniku musisz wziąć pod uwagę, że powiadomienia mają znaczny koszt. Zobacz Tajemnicze powiadomienie aby uzyskać więcej informacji na temat działania SqlDependency. Jak widać, koszty są znaczne:

  • ustawianie powiadomienia (zapisywanie w sys.dm_qn_subscriptions i w tabelach systemowych SSB)
  • odpalanie powiadomienia (pisanie sys.dm_qn_subscriptions)
  • dostarczenie powiadomienia (zapisy w tabelach systemowych SSB, kolejka docelowa)
  • odbieranie powiadomienia (zapisy w docelowej kolejce, tablice systemowe SSB)

To całkiem sporo pism, koszt szybko się zwiększy, jeśli będziesz stale otrzymywać powiadomienia.

Ale prawdziwe pytanie brzmi, jak dokładnie chcesz zareagować w aplikacji na stałe tempo zmian? co chcesz wiedzieć, to coś zmieniony? no wiesz, zawsze tak jest, za każdym razem, gdy aplikacja potrzebuje danych, lepiej odczytuje najnowszy stan, bo na pewno się zmienił. Ankieta też nie ma sensu. Wygląda na to, że to, czego naprawdę chcesz, to albo zmiana śledzenie lub, co bardziej prawdopodobne, niestandardowa kolejka zmian karmione przez twórców zmian.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Efektywne konwertowanie dat między czasem UTC a czasem lokalnym (tj. PST) w SQL 2005

  2. Pierwszeństwo typów danych w SQL Server

  3. SQL Server FOR XML Path tworzy powtarzające się węzły

  4. Nieużywany indeks programu SQL Server

  5. Jak naprawić „Nazwa korelacji musi być określona dla zbiorczego zestawu wierszy w klauzuli from”. w SQL Server