Stockage d'un DataSet en mémoire???!!!

Résolu
Coolpix08 Messages postés 150 Date d'inscription dimanche 14 mars 2004 Statut Membre Dernière intervention 21 décembre 2007 - 1 juin 2006 à 13:14
Coolpix08 Messages postés 150 Date d'inscription dimanche 14 mars 2004 Statut Membre Dernière intervention 21 décembre 2007 - 5 juin 2006 à 09:28
Voila je me suis renseigné sur la foncon dont marchait ASP.NET et j'ai enfin capter le principale et un peu de détail
Mais j'aimerais avoir une confirmation de se que je pense car apres je vais tout le temps utiliser cette methode

Voila ma premiere question :
    - Lors d'un Select sur une base de donnée et l'utilisation d'un DataSet, est ce que le résultat de la requete est entièrement copier dans la zone mémoire du dataset, ou est ce que cette variable un simplement un pointeur vers....quelque chose.

2eme:
    - Meme question sur l'état mémoire du datasource d'un datagrid.

  Voila mon soucis. Plutot que de faire des requetes et des transfert de mémoire d'un select à un dataset -> dataview->datasource ( en plus dela connexion à la base ) autant stocker directement la totalité de la table récupérer dans une Session au premier chargement de la page et apres allez simplement rechercher cette variable de session. Cela serait beaucoup moins lourd au niveau du traitement ( si bien mes 2 questions sont des transfert mémoire )???

Ainsi je n'aurais qu'à utilisé la meme variable dans toutes mes pages pour pas surcharger le serveur de données.

Donc voila j'aimerais simplement une confirmation, qu'il y a bien une copie dans une zone mémoire différente pour chaque variable dataset et datasource et pas simplement un pointeur vers une zone commune???

Merci d'avance!

6 réponses

Coolpix08 Messages postés 150 Date d'inscription dimanche 14 mars 2004 Statut Membre Dernière intervention 21 décembre 2007 2
5 juin 2006 à 09:28
Ouais c'est clair, on a tous un pti prof qui sommeil en nous .

Je pense que je vais garder cette solution de Session, elle me parait la mieux adapter à ce que je dois faire. Mais je vais quand meme voir de ce coté pour en savoir plus, le savoir est toujours bon à prendre...
Pourtant je viens de finir ASP.NET en 1400 pages mais je n'est rien vu de décrit dessus ...
Je suis dans le meme cas que toi, j'ai commencé lASP.NET il y a 1 mois pour mon stage alors j'avance petit à petit...

J'ai pu qu'à trouver des sources XML pour internationnaliser le site et ca devrait etre bon...je pourrais enfin commencer les pages

Merci pour ton avis, je vais valider ce topic en attendant le prochain bloquage !
3
fcampagne Messages postés 195 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 13 juillet 2006 3
1 juin 2006 à 13:35
C'est pas un peu risqué de chargé toute ta table au démarrage dans la page?
Imagine que ta table contienne 5000 enregistrement???
0
Coolpix08 Messages postés 150 Date d'inscription dimanche 14 mars 2004 Statut Membre Dernière intervention 21 décembre 2007 2
1 juin 2006 à 15:45
Merci d'avoir repondu
 Ben c'est bien la problème que j'essaie de resoudre avant de me plonger dans le developpement de mon site.
Et c'est également pour ca que je pose ces 2 questions qui vont me permettre de trancher.

Car comme tu dis, si il y a autant d'enregistrement et que le dataset et le reste est en plus mis en mémoire, ben ca va faire une copie de 5000 elements * 2 ( DataSet + DataSource ) mais à chaque PostBack!!!

Alors qu'avec la solution de le mettre dans un Session, il reste en memoire tt le temps et je n'est qu'un seul acces directe en memoire.

C'est pour ca que j'aimerais avoir une reponse precise sur le mode d'acces de ces 2 composants...

Encore merci de t'intéresser au problème
0
fcampagne Messages postés 195 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 13 juillet 2006 3
2 juin 2006 à 10:35
Mais je suis en train de me demander une chose, le datasource n'est pas juste un pointeur vers ton dataset ou ton datareader, si c'est le cas, tu as juste un dataset en mémoire tout comme la solution de la session qui sera en mémoire.
Donc l'un dans l'autre je me demande si c'est pas la méme chose dans les deux cas a savoir une seul instance de ta structure de données en mémoire et c'est tout
Aprés est ce vrément comme ca que ca se passe, je pourrais pas te le certifier mais en toute logique ça y ressemble!
0

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

Posez votre question
Coolpix08 Messages postés 150 Date d'inscription dimanche 14 mars 2004 Statut Membre Dernière intervention 21 décembre 2007 2
2 juin 2006 à 13:13
Ben si vraiment ca se passe comme ca et que le datasource pointe directement sur le dataset, otant que je garde en mémoire dans une session, ainsi ca méviterait de faire une connection a la base a chaque postback pour récupérer les meme données et n'en sélectionné qu'une partie.

Car le problème est que à chaque postback la page est entièrement détruite ( donc la zone mémoire aussi ) et reconstruite.
Donc je pense que je serais plus gagnant de la stoker 1 fois et cest tt. surtt dans le cas de grosse base de donnée.

Enfin tout ceci n'est que mon avis, tout en supposant ke le datasource est un pointeur...

  Merci d'avoir répondu encore une fois, j'aimerais vraiment approfondir le sujet, donc si tu as des sugestions n'hésite surtt pas je suis preneur de tout!

++
0
fcampagne Messages postés 195 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 13 juillet 2006 3
2 juin 2006 à 14:21
Je suis ok avec toi, une ptite session et tu gardes toute ta base
Mais je le répéte, je n'ai aucune certitude sur la maniére dont une datasource garde en mémoire les données.
Dans le cas ou ça se passe de la maniére que j'ai supposé ci dessus,a savoir que le datasource pointe sur le dataset ou datareader, alors oui en effet ton avis me semble bon et justifié.
Je me suis mis a l'asp dans le cadre de mon stage et je n'en connais pas tous les recoins, donc pardon si je me trompe!
Vala!
En esperant  t'avoir un peu aidé quand méme, apres tout le savoir se partage, et mieux vos etre dans l'erreur que dans l'ignorance!
0
Rejoignez-nous