Garder en mémoire la table d'un DataSet

cs_DevilYann Messages postés 57 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 12 septembre 2007 - 11 juil. 2005 à 10:59
cs_DevilYann Messages postés 57 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 12 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) ?

Je vous remercie d'avance pour les réponses :o)

7 réponses

cs_DevilYann Messages postés 57 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 12 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.

Précision rajoutée :o)
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
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.....

yopyop
0
cs_DevilYann Messages postés 57 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 12 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...
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DevilYann Messages postés 57 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 12 septembre 2007
11 juil. 2005 à 16:38
La réponse est que j'ai un résultat de requête par utilisateur...
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
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.


yopyop
0
cs_DevilYann Messages postés 57 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 12 septembre 2007
11 juil. 2005 à 17:00
Bon merci pour les conseils.
Je vais faire ça puisque il n'y a pas d'autre solutions.

@+
0
Rejoignez-nous