Question

Je veux utiliser la mise en cache des données sur mon .net application C #. Jusqu'à présent, j'ajouté la mise en cache de données et a ajouté des dépendances de cache SQL sur des tables spécifiques. Mais ce n'est pas assez bon. Ces tableaux seront mis à jour trop souvent, mais rien à voir beaucoup des objets mis en cache. Cela rendra la mise en cache des données presque inutile, car il sera rincée fréquemment. Je veux mettre en œuvre la dépendance de cache SQL sur des lignes spécifiques pour chaque objet. Comment puis-je faire?

Était-ce utile?

La solution

Vous devez comprendre comment fonctionne SqlDependency. Vous abonner un jeu de résultats et être averti lorsque cet ensemble de résultats a changé . Vous pouvez vous inscrire tout type de jeu de résultats, cela signifie tout type de requête, tant qu'il est conforme à la restrictions des instructions supportées . Il fait vraiment aucune différence si est une table ou une vue.

Alors, techniquement, vous pouvez souscrire à des notifications spécifiques en soumettant une requête spécifique pour cette ligne, par exemple. avec une clause WHERE codé en dur. Vous devez changer votre code pour récupérer et cache uniquement les données nécessaires sur une base ligne par ligne, par opposition à la récupération des tables entières et les mettre en cache en mémoire. Heck, vous auriez à faire de toute façon si vous êtes au moins préoccupés par la taille de ces tables. Mise en cache des tables entières ne doivent être effectuées pour les données de catalogue et de référence qui changent rarement ou pas du tout.

Vous pouvez également choisir de récupérer et de partitions de cache des données, à savoir. gammes individuelles de touches (disons entre « A » et « D », « E » et « H », etc, et souscrire à être informé de cette partition de données spécifique.

Si vous voulez comprendre comment fonctionne SqlDependency mon blog a certains articles couvrant, y compris pièges de programmation communs de SqlDependency et problèmes de déploiement avec SqlDependency.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top