2009-01-27 7 views
1

J'ai un jeu de données qui contient environ 500 enregistrements avec 7 colonnes dans chaque enregistrement. Je voudrais utiliser objectdatasource et la mise en cache. Je suis sûr que les données ne changent pas. Mais il y aura beaucoup d'utilisateurs accédant aux données. Ma question est de savoir si ce serait une bonne idée de mettre en cache les données qui ont 500 enregistrements. Est-ce optimal ou pas? Je pense que objectdatasource met en cache les données par utilisateur. donc je me demande si les données avec cette taille auraient des problèmes de performance si je cache les données.objectdatasource et la mise en cache

Merci, sridhar.

+0

Quelle quantité de mémoire les 500 enregistrements utilisent-ils? –

Répondre

1

La réponse dépend vraiment de la taille des enregistrements, pas seulement du nombre d'enregistrements. Dans tous les cas, l'algorithme de mise en cache d'ASP.NET utilise un algorithme LRU (Least Recently Used) pour expulser les éléments qui n'ont pas été utilisés récemment pour faire de la place pour des éléments supplémentaires. Par conséquent, à moins que votre site ne soit extrêmement occupé ou que votre jeu de résultats soit extrêmement volumineux, vous pouvez mettre en cache le jeu de résultats et laisser le cache ASP.NET gérer les données les plus utilisées dans le cache et expirer les données les moins utilisées.

Vous pouvez également envisager d'utiliser la mise en cache de sortie au niveau de la page si rien d'autre n'est spécifique à l'utilisateur, car cela vous donnera probablement un peu plus de performances pour une utilisation minimale de la mémoire. Les autres domaines à étudier sont le contrôle, SqlDependencies, et bien sûr si les données sont en lecture seule, assurez-vous que vous désactivez ViewState quel que soit le contrôle que vous utilisez pour afficher les données.