Este artigo apresenta principalmente o compartilhamento da função de pool de conexões de banco de dados implementada pelo Asp. Essa função pode acelerar a velocidade de acesso às páginas da web e reduzir a pressão sobre o banco de dados.
As conexões de banco de dados são um recurso crítico, limitado e caro, especialmente em aplicações web multiusuário. O gerenciamento das conexões de banco de dados pode afetar significativamente a escalabilidade e robustez de toda a aplicação e afetar os indicadores de desempenho do programa. O pool de conexões de banco de dados foi proposto para resolver esse problema. O pool de conexões de banco de dados é responsável por alocar, gerenciar e liberar conexões de banco de dados. Ele permite que os aplicativos reutilizem uma conexão de banco de dados existente em vez de restabelecer uma conexão de banco de dados cujo tempo ocioso exceda o tempo ocioso máximo para evitar erros devido a falha na liberação; a conexão com o banco de dados. Causada pela falta de conexão com o banco de dados. Esta tecnologia pode melhorar significativamente o desempenho das operações de banco de dados.
No entanto, essa tecnologia é geralmente usada em java, php e .net e raramente é usada porque alguns sites corporativos não precisam dessa tecnologia.
Não é que não possa ser utilizado. A seguir está a versão asp que foi pesquisada, que pode acelerar a velocidade de acesso às páginas web e reduzir a pressão no banco de dados.
1. Arquivo de conexão de banco de dados DbPool.asp
<%Const PoolSize = 10Const Connstr = Driver={SQL Server};Server=(local);UID=sa;word=555;Database=db Função GetRandString(lenth)Dim rndstr,iRandomizerndstr = i = 1do while i <= lenthrndstr = rndstr & Chr(cint(((120 - 98 + 1) * Rnd )+ 97))i = i + 1loopGetRandString = rndstrEnd Função Função CreateDbConn()Dim DbConn,ConnKeySet DbConn = Server.CreateObject(ADODB.Connection)DbConn. Open ConnstrConnKey = GetRandString(10)DbPool.Add ConnKey,DbConnEnd Function Function GetDbConn()Dim CurKey,KeysIf DbPool.Count > 0 ThenKeys = DbPool.Keys ' Obtém o nome da chave. CurKey = Keys(0)Response.Write Cur DbConn Key é: & CurKey & <br />Set Conn = Server.CreateObject(ADODB.Connection)Set Conn = DbPool(CurKey)If Conn.State = adStateClosed Then 'Se esta conexão foi fechado, efetue logout do pool, crie uma nova conexão disponível e adicione-a ao pool DbPool.Remove CurKeyCall CreateDbConn() 'Crie uma nova conexão e adicione-a ao pool Set GetDbConn = GetDbConn()Else 'Caso contrário, remova-o Faça logout do pool e retorne o objeto copiado para DbPool.Remove CurKeySet GetDbConn = ConnExit FunctionEnd IfElseResponse.Write O pool de conexão foi usado, reinicie o aplicativo Response.EndEnd ifEnd Função Função FreeDbConn(DbConn)DbPool. Adicionar função GetRandString (10), DbConnEnd2. Arquivo 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 'Cria o número especificado de conexão com o banco de dadosCreateDbConn()NextEnd Sub Sub Application_OnEndDbPool.RemoveAllEnd Sub%>
3. Arquivo de teste test.asp
<!--#include file=DbPool.asp-->< %Response.Write Início do teste:<br>Response.Write Contagem de objetos atuais: & DbPool.Count & <br /> Set dbconn = Server.CreateObject(ADODB. Conexão)Set dbconn = GetDbConn()Response.Write obtém uma conexão do pool <br />Response.Write Contagem de objetos atuais: & DbPool.Count & <br /> Set Rs = Server.CreateObject(ADODB.Recordset)Rs.open selecione * de mkdb,dbconn,1,1Do While Not rs.eofResponse.write Rs(v_oid) & <br />Rs.movenextloop FreeDbConn(dbconn)Response.Write libere uma conexão com o pool <br />Response.Write Current Objects contagem: & DbPool.Count & <br /> %>