Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

.NET SqlDependency com muitas notificações versus sondagem de alta taxa?


SqlDependency só irá notificá-lo que uma mudança ocorreu, e você terá que reler a tabela inteira. Funciona bem com uma baixa taxa de notificações. Em uma taxa alta, você deve considerar que as notificações têm um custo significativo. Veja A notificação misteriosa para obter mais detalhes sobre como o SqlDependency funciona. Como você pode ver, há um custo significativo:
  • configurando a notificação (gravando em sys.dm_qn_subscriptions e em tabelas de sistema SSB)
  • disparando a notificação (escrevendo sys.dm_qn_subscriptions)
  • entrega da notificação (gravações nas tabelas do sistema SSB, fila de destino)
  • recebendo a notificação (gravações na fila de destino, tabelas do sistema SSB)

São algumas gravações, o custo aumentará rapidamente se você for notificado constantemente.

Mas a verdadeira questão é como exatamente você quer reagir na aplicação a uma taxa constante de mudança? o que você quer saber, esse algo mudado? bem, você sabe, sempre faz, sempre que o aplicativo precisa dos dados é melhor ler o estado mais recente, porque certamente mudou. A votação também não faz sentido. Parece que o que você realmente quer é alterar rastreamento ou, mais provavelmente, uma fila de alterações alimentados pelos originadores da mudança.