cs_DevilYann
Messages postés57Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention12 septembre 2007
-
11 juil. 2005 à 10:59
cs_DevilYann
Messages postés57Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention12 septembre 2007
-
11 juil. 2005 à 17:00
Salut
Première chose : Question ASP.NET en c# !
Je dois garder en mémoire une table de mon dataset afin de ne pas devoir la remplir à chaque action des utilisateurs. J'utilise pour cela le code suivant :
"Session["TDomainesOrga"] = ds.TDomainesOrga;"
Ceci marche sans problème.
Le problème est que si beaucoup d'utilisateurs se connectent en même temps, la mémoire du serveur devrait déborder sachant qu'il y a beacoup de lignes dans cette table.
Donc question simple : il y a t'il en ASP.NET une autre méthode que Session pour sauvegarder la table d'un dataset (par exemple) ?
cs_DevilYann
Messages postés57Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention12 septembre 2007 11 juil. 2005 à 11:48
Je tiens à préciser un point.
Si je veux garder la table de mon dataset en mémoire, c'est tout simplement parce que j'en ai besoin lors de l'appel à l'évènement PageIndexChanged de mon datagrid.
Comme je n'ai pas envie de refaire la requete a chaque changement de page, je voudrai savoir la méthode qui permet de garder une table d'un dataset en mémoire hormis l'objet Session.
cs_Yopyop
Messages postés586Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention10 février 20101 11 juil. 2005 à 13:37
re,
si c'est un objet que tous les utilisateurs partagent, tu peux utiliser le cache (tu auras une seule fois l'objet en mémoire pour tous les users).
autrement tu peux utiliser SQL server pour gérer la mémoire (mais au final ton objet est dans la base donc le framework fais une requête pour le récupérer).
tu peux également sauver ton dataset dans un fichier, mais la côté perfs c'est pas la joie.
donc au final, la meilleure solution, c'est de ne pas mettre ton dataset en mémoire et d'utiliser un datareader... et de refaire la requête...
à j'oubliais, tu peux également sauver ton dataset dans le viewstate, mais là aussi, côté perfs.....
cs_DevilYann
Messages postés57Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention12 septembre 2007 11 juil. 2005 à 13:53
Merci pour te réponse.
Pour résumer, le mieux en ASP.NET c'est de refaire la requête à chaque fois...
Je ne trouve pas ça très optimisé (surtout si c'est une grosse requête) mais si finalement c'est la meilleure solution, je vais m'y résoudre...
Je développe dans le cadre de mon boulot et j'attends déjà les critiques du style "Mais qu'est ce que ca rame !!! C'est vraiment pas génial !" etc...
Si qqun d'autre à une opinion à ce sujet, qu'il m'en fasse part...
cs_Yopyop
Messages postés586Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention10 février 20101 11 juil. 2005 à 16:26
re,
la question est de savoir si tu as un résultat de requête par utilisateur (var Session) ou si ce sont les mêmes données pour tous les utilisateurs (var Application)...
yopyop
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Yopyop
Messages postés586Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention10 février 20101 11 juil. 2005 à 16:47
re,
donc maintenant c'est une question de choix...
Si tu est sûr que la mémoire va être dépassée, et bien il faut rééxecuter la requête à chaque fois...et dans ce cas, si tu veux gagner en perfs, il faut utiliser un datareader au lieu d'un dataset.