Comment puis-je cache un jeu de données pour arrêter les allers-retours db?
Je suis entrain de créer une page de résultats de recherche en C# dans un ASP.NET 1.1 de la page. Dans ma couche de données j'ai un jeu de données qui stocke le résultat d'un simple vieux ADO.NET appel de procédure stockée. Le jeu de données a deux tables de données et je suis en utilisant un DataVIew de filtrer et de trier les colonnes.
Je ne veux remplir le dataset une fois, et ensuite travailler sur les tables de données et dérivés DataView jusqu'à ce que la page est chargée.
La meilleure façon dois-je le cache de la base de données dans mon DAL, de sorte qu'il est rempli uniquement PageLoad? Dois-je les mettre dans un Cache d'objet, une variable membre statique, une propriété...je n'ai pas de fantaisie des modèles d'entité ou de l'ORM, c'est .NET 1.1. Merci à l'avance.
Vous devez vous connecter pour publier un commentaire.
Votre DAL être utilisé par d'autres applications? Si non, alors vous pouvez intégrer la mise en cache de la
DataSet
dans leCache
ouSession
, selon les fonctionnalités besoin de stockage.Session
sera spécifique à l'utilisateur et obtenir nettoyé lors de la session de l'utilisateur expire qui signifie que les données peuvent être autour de beaucoup plus de temps que nécessaire. Plus d'infos sur la SessionCache
est agréable, car il sera automatiquement annulé (utiliser coulissante à l'échéance, si les données de recherche ne changera pas souvent) et vous pouvez stocker les critères de recherche afin que les autres utilisateurs peuvent tirer parti de la recherche le bien qui vous permettront d'économiser des appels à la base de données par plusieurs utilisateurs, peut-être. Plusieurs utilisateur d'être en mesure d'accéder à ces données est un gros avantage par rapport à l'aide deSession
. Plus d'infos sur le CacheSi vous prévoyez d'utiliser votre DAL dans d'autres apap, vous voudrez peut-être la demande de faire la mise en cache de lui-même.
Vous avez juste besoin d'un wrapper comme:
il y a des Formulaires que travailler avec .net 1.1, mais si vous ne voulez pas les utiliser, je vous recommande soit le remplissage de quelque chose dans le Cache de sorte que vous pouvez expirer si nécessaire, et de ré-obtenir les données. Vous pouvez aussi le mettre dans la session (si la donnée est spécifique à l'utilisateur) ou de l'application (si elle ne l'est pas) des objets.
Si c'est par les données de l'utilisateur ne met pas en cache une grande quantité de données de la mettre en session ou similaire, vous êtes gravement nuit à la capacité de votre site à l'échelle. Envisager la manière dont le montant de l'info en mémoire augmente à mesure que vous ajoutez de nouveaux utilisateurs, et puis ce qui se passe quand vous avez besoin d'utiliser plus qu'un seul serveur de site.
Au lieu de modifier la procédure de sorte que vous pouvez récupérer uniquement la page de données que vous devez vous montrer.
Si ce sont des données qui est utilisé pour tous les utilisateurs, certainement dans le cache. Vous pouvez utiliser l'asp.net Cache pour que.