sql >> Database >  >> RDS >> Sqlserver

.NET SqlDependency met veel meldingen versus polling met hoge snelheid?

SqlDependency laat u alleen weten dat er een wijziging is opgetreden en u moet de hele tabel opnieuw lezen. Het werkt goed met een laag aantal meldingen. Bij een hoog tarief moet u er rekening mee houden dat meldingen aanzienlijke kosten met zich meebrengen. Zie De mysterieuze melding voor meer informatie over hoe SqlDependency werkt. Zoals u kunt zien, zijn er aanzienlijke kosten:

  • de melding instellen (schrijven in sys.dm_qn_subscriptions en in SSB-systeemtabellen)
  • de melding activeren (sys.dm_qn_subscriptions schrijven)
  • het afleveren van de melding (schrijft in SSB-systeemtabellen, doelwachtrij)
  • de melding ontvangen (schrijft in doelwachtrij, SSB-systeemtabellen)

Dat zijn nogal wat schrijfacties, de kosten lopen snel op als je constant op de hoogte wordt gehouden.

Maar de echte vraag is hoe u in de applicatie precies wilt reageren op een constant veranderingspercentage? wat wil je weten, dat iets veranderd? Nou, weet je, dat doet het altijd, telkens als de applicatie de gegevens nodig heeft, kan het beter de laatste status lezen, want het is zeker veranderd. Stemmen heeft ook geen zin. Klinkt alsof wat je echt wilt is ofwel wijzigen volgen of, waarschijnlijker, een op maat gebaseerde wachtrij met wijzigingen gevoed door de initiatiefnemers van de wijziging.




  1. Hoe *alles* terug te krijgen van een opgeslagen procedure met JDBC

  2. Gegevens uit een andere tabel invoegen met een lus in mysql

  3. Best practices voor PostgreSQL-replicatie - Deel 2

  4. Maken, niet breken, SQL Server-prestaties