Cet article présente principalement le partage de la fonction de pool de connexions à la base de données implémentée par Asp. Cette fonction peut accélérer la vitesse d'accès aux pages Web et réduire la pression sur la base de données. Les amis qui en ont besoin peuvent s'y référer.
Les connexions aux bases de données constituent une ressource critique, limitée et coûteuse, en particulier dans les applications Web multi-utilisateurs. La gestion des connexions aux bases de données peut affecter de manière significative l'évolutivité et la robustesse de l'ensemble de l'application et affecter les indicateurs de performance du programme. Le pool de connexions à la base de données a été proposé pour résoudre ce problème. Le pool de connexions à la base de données est responsable de l'allocation, de la gestion et de la libération des connexions à la base de données. Il permet aux applications de réutiliser une connexion à la base de données existante au lieu de rétablir une connexion à la base de données dont le temps d'inactivité dépasse le temps d'inactivité maximal pour éviter les erreurs dues à l'échec de la libération. la connexion à la base de données causée par une connexion à la base de données manquante. Cette technologie peut améliorer considérablement les performances des opérations de base de données.
Cependant, cette technologie est généralement utilisée en Java, php et .net. ASP est rarement utilisé car certains sites Web d'entreprise n'ont pas du tout besoin d'une telle technologie.
Ce n'est pas qu'il ne peut pas être utilisé. Ce qui suit est la version asp qui a été recherchée, qui peut accélérer la vitesse d'accès aux pages Web et réduire la pression sur la base de données.
1. Fichier de connexion à la base de données DbPool.asp
< %Const PoolSize = 10Const Connstr = Driver={SQL Server};Server=(local);UID=sa;word=555;Database=db Function GetRandString(lenth)Dim rndstr,iRandomizerndstr = i = 1do while i <= lenthrndstr = rndstr & Chr(cint(((120 - 98 + 1) * Rnd )+ 97))i = i + 1loopGetRandString = rndstrEnd Fonction Fonction CreateDbConn()Dim DbConn,ConnKeySet DbConn = Server.CreateObject(ADODB.Connection)DbConn. Ouvrez ConnstrConnKey = GetRandString(10)DbPool.Add ConnKey,DbConnEnd Function Function GetDbConn()Dim CurKey,KeysIf DbPool.Count > 0 ThenKeys = DbPool.Keys ' Obtenez le nom de la clé. CurKey = Keys(0)Response.Write Cur DbConn Key Is : & CurKey & <br />Set Conn = Server.CreateObject(ADODB.Connection)Set Conn = DbPool(CurKey)If Conn.State = adStateClosed Then 'Si cette connexion a été fermé, déconnectez-le du pool, créez une nouvelle connexion disponible et ajoutez-la au pool DbPool.Remove CurKeyCall CreateDbConn() 'Créez une nouvelle connexion et ajoutez-la au pool Set GetDbConn = GetDbConn()Else 'Sinon, supprimez-le Déconnectez-vous du pool, puis renvoyez l'objet copié à DbPool.Remove CurKeySet GetDbConn = ConnExit FunctionEnd IfElseResponse.Write Le pool de connexions a été utilisé, veuillez réinitialiser l'application Response.EndEnd ifEnd Function Function FreeDbConn(DbConn)DbPool. Ajouter GetRandString(10), fonction DbConnEnd
2. Fichier global global.asa
<object ID=DbPool Progid=Scripting.Dictionary Scope=Application runat=server></object><!--#include file=DbPool.asp-->< %Sub Application_OnStartDim ConnKeyFor i = 1 To PoolSize 'Créer le numéro spécifié de la connexion à la base de donnéesCreateDbConn()NextEnd Sub Sub Application_OnEndDbPool.RemoveAllEnd Sub%>
3. Testez le fichier test.asp
<!--#include file=DbPool.asp-->< %Response.Write Début du test :<br>Response.Write Nombre d'objets actuels : & DbPool.Count & <br /> Définir dbconn = Server.CreateObject(ADODB. Connection)Set dbconn = GetDbConn()Response.Write obtenir une connexion du pool <br />Response.Write Current Objects count : & DbPool.Count & <br /> Set Rs = Server.CreateObject(ADODB.Recordset)Rs.open select * from mkdb,dbconn,1,1Do While Not rs.eofResponse.write Rs(v_oid) & <br />Rs.movenextloop FreeDbConn(dbconn)Response.Write libère une connexion au pool <br />Response.Write Current Objects nombre : & DbPool.Count & <br /> %>