Eu tenho vários serviços do Windows completos que atualmente pesquisam o banco de dados procurando por registros novos ou alterados em tabelas e/ou exibições específicas . Por razões óbvias, isso limita a escalabilidade e adiciona carga desnecessária aos meus bancos de dados do SQL Server 2008. Eu gostaria de implementar algo semelhante a um padrão de publicação e assinatura em que o banco de dados; através de algum mecanismo; publica mensagens para indicar quando certas mudanças de estado ocorrem.
Isso me leva à minha pergunta... Quais mecanismos residem no SQL Server 2008 nativamente; caso existam; que poderia suportar esse padrão?
Estou aberto a outras ideias, assumindo que posso me livrar das pesquisas cegas. Como um contexto extra, a mensagem precisará conter apenas informações básicas para descrever a natureza da mudança e o quê; por id; mudou.
Observação: considerei o uso de pacotes e gatilhos SSIS, mas não acho apropriado, especialmente durante os períodos em que a taxa de alteração é maior.
Parece que você está procurando por notificações de consulta .
Exatamente como você descreve, esse recurso permite que você assine notificações que são geradas quando os resultados de uma consulta mudam. Geralmente mais eficiente do que sondar repetidamente o banco de dados em busca de alterações.
Nos bastidores, as notificações contam com os mecanismos usados para manter exibições indexadas. Por causa disso, as consultas de notificação são limitadas pelas mesmas restrições que se aplicam às exibições indexadas. É um longo conjunto de requisitos que você deve revisar em detalhes para determinar se isso não seria adequado para o seu cenário.