Este artículo presenta principalmente la función para compartir el grupo de conexiones de la base de datos implementada por Asp. Esta función puede acelerar la velocidad de acceso a las páginas web y reducir la presión sobre la base de datos.
Las conexiones a bases de datos son un recurso crítico, limitado y costoso, especialmente en aplicaciones web multiusuario. La gestión de conexiones de bases de datos puede afectar significativamente la escalabilidad y solidez de toda la aplicación y afectar los indicadores de rendimiento del programa. Se propuso el grupo de conexiones de bases de datos para solucionar este problema. El grupo de conexiones de bases de datos es responsable de asignar, administrar y liberar conexiones de bases de datos. Permite que las aplicaciones reutilicen una conexión de base de datos existente en lugar de restablecer una conexión de base de datos cuyo tiempo de inactividad exceda el tiempo de inactividad máximo para evitar errores debido a una falla en la liberación. la conexión de la base de datos. Causado por la falta de conexión de la base de datos. Esta tecnología puede mejorar significativamente el rendimiento de las operaciones de la base de datos.
Sin embargo, esta tecnología se usa generalmente en java, php y .net y rara vez se usa porque algunos sitios web corporativos no necesitan dicha tecnología en absoluto.
No es que no se pueda utilizar. La siguiente es la versión ASP que se ha investigado, que puede acelerar la velocidad de acceso a las páginas web y reducir la presión sobre la base de datos.
1. Archivo de conexión a la base de datos DbPool.asp
< %Const PoolSize = 10Const Connstr = Driver={SQL Server};Server=(local);UID=sa;word=555;Database=db Función GetRandString(lenth)Dim rndstr,iRandomizerndstr = i = 1do while i <= lenthrndstr = rndstr & Chr(cint(((120 - 98 + 1) * Rnd )+ 97))i = i + 1loopGetRandString = rndstrEnd Función Función CreateDbConn()Dim DbConn,ConnKeySet DbConn = Server.CreateObject(ADODB.Connection)DbConn. Abra ConnstrConnKey = GetRandString(10)DbPool.Add ConnKey,DbConnEnd Función Función GetDbConn()Dim CurKey,KeysIf DbPool.Count > 0 ThenKeys = DbPool.Keys ' Obtenga el nombre de la clave. CurKey = Keys(0)Response.Write Cur DbConn La clave es: & CurKey & <br />Set Conn = Server.CreateObject(ADODB.Connection)Set Conn = DbPool(CurKey)If Conn.State = adStateClosed Then 'Si esta conexión se ha cerrado, cierre sesión en el grupo, cree una nueva conexión disponible y agréguela al grupo DbPool.Remove CurKeyCall CreateDbConn() 'Cree una nueva conexión y agréguela al grupo Set GetDbConn = GetDbConn()Else 'De lo contrario, elimínelo Cierre sesión en el grupo y luego devuelva el objeto copiado a DbPool.Remove CurKeySet GetDbConn = ConnExit FunctionEnd IfElseResponse.Write El grupo de conexiones se ha agotado, reinicialice la aplicación Response.EndEnd ifEnd Función Función FreeDbConn(DbConn)DbPool. Agregue la función GetRandString(10), DbConnEnd
2. Archivo 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 'Crea el número especificado de conexión de base de datosCreateDbConn()NextEnd Sub Sub Application_OnEndDbPool.RemoveAllEnd Sub%>
3. Archivo de prueba test.asp
<!--#include file=DbPool.asp-->< %Response.Write Inicio de prueba:<br>Response.Write Recuento de objetos actuales: & DbPool.Count & <br /> Establecer dbconn = Server.CreateObject(ADODB. Conexión)Establecer dbconn = GetDbConn()Response.Write obtener una conexión del grupo <br />Response.Write Recuento de objetos actuales: & DbPool.Count & <br /> Establecer Rs = Server.CreateObject(ADODB.Recordset)Rs.open seleccione * de mkdb,dbconn,1,1Hacer mientras no rs.eofResponse.write Rs(v_oid) & <br />Rs.movenextloop FreeDbConn(dbconn)Response.Escribir una conexión gratuita al grupo <br />Response.Escribir objetos actuales recuento: & DbPool.Count & <br /> %>