Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Fermer la connexion ou laisser ouvert ? [ Base de données / ADO & DAO ] (Akita95)

dimanche 19 novembre 2006 à 17:12:16 | Fermer la connexion ou laisser ouvert ?

Akita95

Bonjour à tous,

Je développe actuellement un programme utilisant une connexion ADO.

Ma question est assez simple : Vaut-il mieux ouvrir et fermer une connexion a chaque requete ou laisser la connexion ouverte pendant toute l'éxécution du programme ?

Je parle surtout au niveau de l'état du réseaux et des répercution du programme sur celui-ci.

Merci de donner des arguments c'est important pour que je fasse mes choix :-)

Merci d'avance à tous ceux qui m'aideront !!

A+++

Akita

dimanche 19 novembre 2006 à 17:45:36 | Re : Fermer la connexion ou laisser ouvert ?

kazer04

selon moi je trouve qu'il es mieux de l'ouvrivre pour l'execution d'une requette et et de la fermer apres ton execution c'est plus sur et depense moin de resource

dimanche 19 novembre 2006 à 18:01:07 | Re : Fermer la connexion ou laisser ouvert ?

rytta87

Salut,

Il vaut mieux que tu ouvres la connection et que tu la fermes à chaque exécution pour libérer la mémoire et ne pas ralentir ton PC.

Bonne chance.


mardi 21 novembre 2006 à 14:10:04 | Re : Fermer la connexion ou laisser ouvert ?

Malkuth

Membre Club
Salut.

Je ne suis pas du même avis, le choix va être fonction de l'activité sur la base de donnée :

Si tu as des requette fréquentes ouvrir et fermer la connection va consommer de la ressource processeur, ainsi que de la bande passante (obliger de renégocier la connection à chaque fois) et en plus tu vas perdre énormément de temps), et on peut aussi noté que ce problème se retrouverat autant du coté serveur que client, maintenir la connection ouverte ne reclamme qu'un peu de mémoire (et aujourd'hui je suis pas sur que se soit un gros problème).

Si tu utilise un cache local avec des mise à jours peu fréquente, (ex Toutes les 10 secondes), alors là effectivement tu peux ouvrir, faire les mises à jour et refermer ensuite.

Trés franchement test les deux solutions et tu veras qu'un pc maintient la connection pour un faible cout en ressource (C'est rien par rapport a emul par exemple qui peu maintenir une centaine de connection simultanément,et emule tourne chez moi sur un pc à 1Ghz et 256Mo de RAM).

pour t'assuré de ce que je viens de dire fais les tests suivants :

Test 1 :

'Récupérer la date de début
For i as integer = 0 to 1000
   'Connection à la base de donnée,
   'Execution d'une requette
   'Fermeture de la connexion
   'Attendre 10 ms
NEXT
'Récupérer la date de fin

Test 2 :

'Récupérer la date de début
'Connection à la base de donnée,
For i as integer = 0 to 1000
   'Execution d'une requette
   'Attendre 10 ms
NEXT
'Fermeture de la connexion
'Récupérer la date de fin

Attention utilise strictement les même code pour les blocks de même nom des tests(y compris les déclaration de variable et surtout l'initialisation de celle ci) car dans un vrai prog tu sera obliger de recréer l'objet connection dans chaque procédure.

Pendant les test regarde les débits sur le réseau(éteint tous les prog qui peuvent utiliser le réseau bien sur),

Compare ensuite les durés d'éxécution, la diférence devrait être flagrante,
Compare le débit réseau moyen * durée d'éxecution et tu veras dans quel proportion l'une ou l'autre des méthode s'est réveler la moins gourmande de ce coté.
Vérifie pendant l'éxécution les valeurs d'utilisation processeur du programme,
Et pour finir regarde aussi les valeurs d'utilisation de mémoire(en minimizant le programme dans la barre des tâches).

Le choix d'une solution ou d'une autre ne peut pas être définie dans l'absolue mais au cas par cas. mais dans le doute une connection ouverte une seule fois, c'est plutôt meilleur.

Si tu fais les tests, tient nous au courrant...

Bon courage.

mardi 21 novembre 2006 à 14:11:55 | Re : Fermer la connexion ou laisser ouvert ?

Malkuth

Membre Club
PS : Le problème se complique si tu fais un programme multithread.... mais bon on vas pas chipoter.



Cette discussion est classé dans : programme, connexion, fermer, ouvert, laisser


Répondre à ce message

Sujets en rapport avec ce message

fermeture d'une connexion ado [ par tutor ] BonjourPetite question, aprés avoir ouvert une connexion sur une base acces avec ado puis lancer quelques requetes sur différentes tables dans des for Comment Fermer une apllication que l'on a ouvert [ par Spylover ] BonjourUn trou de mémoire comment faire pour fermer une application que j'ouvre comme ca. :MyAppID = Shell("c:\program files\internet explorer\iexplor fermer un application au shutdown de l'ordinateur [ par xyron ] Bonjour,J'ai une application qui est activée lorsque je démarre mon ordinateur. Le problème survient lorsque je ferme l'ordinateur, une fenêtre end p urgt : vba access : pb pour fermer un classeur xls [ par matsony ] Bonjour forum, j'ai un code qui me permet, à partir de vba access de fermer un classeur excel s'il est ouvert, avant d'exporter des données (d'une tab ligne de commande sur un programme ouvert [ par windob ] salut,comment je pourrait faire pour que un type de fichier appele une ligne de commande sur mon appli qui est déja ouverte sans en ouvrir une deuxiem fermer un port ouvert [ par vincentescalade ] Quelqu'un saurait il comment fermer un port de connection ouvert ???Merci d'avance@ +++ savoir si un fichier excel est ouvert et le fermer si c'est le cas [ par skunkbedo ] Salut tout le monde! Je vsuis en train de développer une application en VB qui utilise Excel. L'application permet d'ouvrir, de modifier et d'enregist urgent recherche programme vba pour fermer claseur merci [ par baumont ] je souhaiterai fermer un classeur avant d'en ouvrir un autre en fenetre principalesi vous connaissez une fonction de fermeture...merci comment laisser une forme ouvert en ouvrant une autre [ par sensosofttunisiee ] Bonjour,j'ai deux forme dans mon projet sur vb6.0je veut laisser la premiere page ouvert mm si on fait appel a l'autre formela premier forme  : princi connexion entre deux applications [ par moha81 ] j'ai un programme vb qui à travers lui je vais excuter un autre programme(de communication "Net2pnone") .comment établir cette tâche.merci


Nos sponsors

Sondage...

CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.