HttpContext.Current.Cache VS. Performances de la table SQL

asp.net-mvc-4 caching dapper performance sql-server

Question

Nous avons une base de données de panier d'achat mal conçue. Tous les objets traités qui seront utilisés sur le site avant sont stockés dans HttpContext.Current.Cache sur Application_Start . Par objet traité, on entend un script SQL contenant de nombreuses jointures et des conditions.

Vous recherchez la meilleure solution pour supprimer la mise en cache ou améliorer le processus de mise en cache actuel. Je pense à stocker les objets traités dans une table SQL Server qui sera repeuplée à minuit. Et utilisez Dapper ORM pour récupérer les données de cette table SQL Server et implémenter la mise en cache de sortie.

J'espère que quelqu'un partagera une solution rapide et facile à gérer pour résoudre ce problème. :)

Merci!

Réponse d'expert

Ce que vous décrivez est vraiment: dupliquer les données dans un second modèle (techniquement redondant), plus adapté à la requête. Si tel est le cas, alors assurez-vous: amusez-vous avec ça - ce n'est pas tout à fait inhabituel. Cependant, avant de faire tout cela, vous pouvez essayer des vues indexées - il se peut que cela résout tout sans que vous ayez à écrire tout le code de maintenance.

Je suggère toutefois de ne pas "supprimer la mise en cache" - mais simplement de "faire en sorte que le cache expire à un moment donné"; il y a une différence importante. Frapper la base de données pour les mêmes données sur chaque requête n'est pas une bonne idée.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi