Pergunta

Eu quero usar o cache de dados no meu .net C # aplicação. Até agora eu adicionei os dados de cache e adicionados dependências de cache SQL em tabelas específicas. Mas isso não é bom o suficiente. Estas tabelas serão atualizadas com muita freqüência, mas não é relevante para muitos dos objetos em cache. Isso fará com que o cache de dados quase inútil, porque ele vai ser lavado com freqüência. Eu quero implementar dependência de cache SQL em linhas específicas para cada objeto. Como posso fazer isso?

Foi útil?

Solução

Você precisa entender como SqlDependency funciona. Você subscrever um conjunto de resultados e ser notificado quando esse conjunto de resultados mudou . Você pode assinar qualquer tipo de conjunto de resultados, o que significa qualquer tipo de consulta, desde que esteja em conformidade com o restrições das demonstrações suportados . Realmente não faz diferença se é uma tabela ou uma vista.

Então, tecnicamente você pode se inscrever para notificações específicas através da apresentação de um específico de consulta para essa linha, ie. com um disco codificado WHERE. Você teria que alterar o código para recuperar e armazenar em cache apenas os dados necessários em uma base linha por linha em oposição a recuperar tabelas inteiras e cache-los na memória. Heck, você teria que fazer isso de qualquer maneira, se você estiver pelo menos preocupado com o tamanho dessas tabelas. Armazenando tabelas inteiras só deve ser feito para os dados de catálogo e de referência que a mudança raramente ou não em todos.

Você também pode escolher para recuperar e partições de cache de dados, ou seja. gamas individuais de teclas (por exemplo, entre 'A' e 'D', 'E' e 'H', etc, e inscrever-se a ser notificado de que partição de dados específica.

Se você quiser entender como funciona SqlDependency meu blog tem alguns artigos cobrindo-o, incluindo armadilhas comuns de programação de SqlDependency e problemas de implantação com SqlDependency .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top