Question

Puis-je stocker une connexion de base de données dans l'objet Session?

Était-ce utile?

La solution 4

À partir de ce lien http://support.microsoft.com/default.aspx/ Ko / 243543

Vous ne devriez pas stocker la connexion à la base de données dans la session.

D'après ce que j'ai compris, si vous le faites, les demandes ASP ultérieures destinées au même utilisateur doivent utiliser le même thread.

Par conséquent, si vous avez un site occupé, il est probable que "votre" thread sera déjà utilisé par quelqu'un d'autre. Vous devrez donc attendre qu'il soit disponible.

Multipliez le nombre d'utilisateurs par beaucoup plus d'utilisateurs et vous obtiendrez l'attente de tous les autres fils et d'un site peu réactif.

Autres conseils

Il n’est généralement pas recommandé de le faire. Une chaîne de connexion dans la variable Application, avec une fonction / classe de gestionnaire auxiliaire, est une méthode de choix. Here est une référence. (Le lien mort a été supprimé car il mène maintenant à un site de phishy)

Je crois me souvenir que cela aurait pour effet d’analyser votre application en un seul thread, ce qui serait une mauvaise chose.

En général, je ne stockerais aucun objet dans les variables d'application (et certainement pas dans les variables de session).

En ce qui concerne les connexions à la base de données, il s'agit d'un non-non définitif; en outre, il n'y a absolument aucun besoin.

Si vous utilisez ADO pour communiquer avec la base de données, utilisez la même chaîne de connexion (oui, stockez this dans une variable d'application) pour toutes vos connexions de base de données, le «pooling de connexion» sera mis en œuvre dans les coulisses. Cela signifie que lorsque vous libérez une connexion, celle-ci n'est pas réellement détruite - elle est mise de côté pour les prochains gars qui veulent la même connexion. Ainsi, la prochaine fois que vous demanderez la même connexion, elle sera retirée du marché plutôt que d'être explicitement créée et instanciée, ce qui représente une amélioration de l'efficacité non négligeable.

Comme l'a dit CJM, il n'est pas nécessaire de stocker une connexion dans un objet Session: le pooling de connexions est bien meilleur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top