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.
|