begin process at 2012 02 16 17:39:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Base de données

 > 

ADO & DAO

 > 

Fermer la connexion ou laisser ouvert ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fermer la connexion ou laisser ouvert ?

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ée 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 Fermer un processus ouvert par une application [ par Kikod ] Bonjour, dans mon programme, je fais appel à un objet qui permet de lancer un autre programme qui tourne en tâche de fond et permet d'accéder à un lo "Connexion fermée par serveur"... [ par Nowid50 ] Bonjour,Je suis sur un petit programme pour tester les capacités de Winsock. J'ai regardé des exemples, mais je n'arrive pas à trouver pourquoi mon co Connexion a partir d'un fichier excel ouvert a un fichier excel fermer [ par h_adil ] Bonsoir,je voudrai savoir comment on peut se connecter à partir d'un fichier excel ouvert à un ficher excel fermer puis de recuperer des informations Serveur ouvert dans session fermée [ par XempireChefDuServeur ] Bonjour, voilà mon problème : J'aimerais laisser un serveur ouvert mais en fermant la session dans laquelle il est ouvert... Autrement-dit, j'aimerais VB6 Mettre dans un tableau les processus ouvert sous windows XP (KillProcessus) [ par JeffC1977 ] Bonjour J'utilise ce code afin de fermer un application http://www.vbfrance.com/codes/FUNCTION-TERMINER-KILL-PROCESSUS-SON-NOM_7838.aspx Ce code f Fermer une connexion réseau. [ par nonopirator ] Bonjour, Nous avons dans mon entreprise une application client/serveur dont le nombre de connexions est limité. Cette limite étant devenue un peu "ju ?connexion dynamique à la base de données [ par ebende ] slt j'ai développé un programme en vb 2008 et j'ai mis la base de données dans le dossier debug avant la compilation.Après installation la base de don Fermer seulement une instance d'un programme [ par eccsup ] Bonjour à tous, Je bloque sur un probleme: Serait-il possible de ne fermer qu'un seule instance d'une application, Je m'explique : Je souhaitrait fermer le programme ouvert et lancer sa copie d'un autre repertoire [ par osvaldege ] Bonjour, Voilà en fait mon problème c'est que je voudrais copier le contenu de mon dossier où le programme est exécuté dans un autre repertoire et fai


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,217 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales