¿Cómo hacer un grupo de conexiones de base de datos ASP?
Asp implementa la función de compartir el grupo de conexiones de bases de datos
Colaborador: junjie
Este artículo presenta Asp para implementar bases de datos agrupación de conexiones Uso compartido de funciones, esta función puede acelerar la velocidad de acceso a las páginas web y reducir la presión sobre la base de datos. Los amigos que lo necesiten pueden consultarla
La conexión a la base de datos es un recurso crítico, limitado y costoso, lo cual es. importante en web multiusuario Especialmente en la aplicación. La gestión de conexiones de bases de datos puede afectar seriamente la escalabilidad y solidez de toda la aplicación, afectando así las métricas de rendimiento del programa. La agrupación de conexiones de bases de datos puede resolver 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 las conexiones de bases de datos existentes en lugar de restablecer una conexión de bases de datos que han estado inactivas durante más tiempo que el tiempo máximo de inactividad para evitar errores debidos. a no poder liberar las conexiones de la base de datos. La conexión de la base de datos se pierde. Esta técnica puede mejorar enormemente 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 en asp, porque algunos sitios web corporativos no necesitan esta tecnología en absoluto.
No es que no se pueda utilizar. La siguiente es una versión ASP investigada, que puede acelerar el acceso a la página 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 = 10
Const Connstr = "Driver={SQL Server};Server=(local);UID=sa;word = 555;Base de datos=db"
Función GetRandString(lenth)
Dim rndstr,i
Aleatorio
rndstr = ""
i = 1
hacer mientras i <.= longitud
rndstr = rndstr & Chr(cint(((120 - 98 + 1) * Rnd )+ 97))
i = i + 1
bucle
GetRandString = rndstr
Función final
Función CreateDbConn()
Dim DbConn,ConnKey
Establecer DbConn = Server.CreateObject("ADODB.
DbConn.Open Connstr
ConnKey = GetRandString(10)
DbPool.Add ConnKey,DbConn
Función final
Función GetDbConn()
Dim CurKey Keys
Si DbPool.Count > 0 Entonces
Keys = DbPool.Keys ' Obtiene el nombre de la clave.
CurKey = Claves(0)
Respuesta.Escribir "La clave Cur DbConn es: " & CurKey & "
"
Establecer Conn = Servidor .CreateObject("ADODB. Connection")
Set Conn = DbPool(CurKey)
If Conn.State = adStateClosed Then 'Si esta conexión está cerrada, cierre sesión en el grupo , crea una nueva conexión disponible y la agrega al grupo
DbPool. Eliminar CurKey
Llamar a CreateDbConn() 'Crea una nueva conexión y agregarla al grupo
Establecer GetDbConn = GetDbConn()
De lo contrario, elimínela del pool Darse de baja y devolver el objeto copiado
DbPool.
Agregue GetRandString(10),DbConn
Función final
2. Archivo global global.asa
< %
Sub Application_OnStart
Dim ConnKey
Para i = 1 To PoolSize 'Crear el número especificado de conexiones de base de datos
CreateDbConn()
Siguiente
End Sub
Sub Application_OnEnd p >
DbPool.RemoveAll
End Sub
%>
3.Archivo de prueba test.asp
< %
Respuesta.Escribe "Inicio de prueba:
"
Respuesta. Escriba "Recuento de objetos actuales: " & DbPool.Count & "
"
Establecer dbconn = Server.CreateObject("ADODB.Connection")
Establecer dbconn = GetDbConn( )
Response.Write "obtener una conexión del grupo
"
Response.Write "Recuento de objetos actuales: " & DbPool.Count & "
"
Establecer Rs = Server.CreateObject("ADODB.Recordset")
Rs.open "select * from mkdb",dbconn,1,1
Hacer mientras No rs.eof
Response.write Rs("v_oid") & "
"
Rs. movenext
bucle
FreeDbConn(dbconn)
Response.pool
"
Response.Write "Recuento de objetos actuales: " & DbPool.Count & "
"
%>