이 기사에서는 주로 Asp에서 구현한 데이터베이스 연결 풀 기능의 공유를 소개합니다. 이 기능은 웹 페이지의 액세스 속도를 높이고 이를 참조할 수 있는 데이터베이스에 대한 부담을 줄일 수 있습니다.
데이터베이스 연결은 특히 다중 사용자 웹 애플리케이션에서 중요하고 제한적이며 비용이 많이 드는 리소스입니다. 데이터베이스 연결 관리는 전체 애플리케이션의 확장성과 견고성에 큰 영향을 미칠 수 있으며 프로그램의 성능 지표에 영향을 미칠 수 있습니다. 이 문제를 해결하기 위해 데이터베이스 연결 풀이 제안되었습니다. 데이터베이스 연결 풀은 데이터베이스 연결 할당, 관리 및 해제를 담당합니다. 이를 통해 애플리케이션은 연결을 다시 설정하는 대신 기존 데이터베이스 연결을 재사용할 수 있습니다. 해제 실패로 인한 오류를 방지하기 위해 유휴 시간이 최대 유휴 시간을 초과하는 데이터베이스 연결을 해제합니다. 데이터베이스 연결이 누락되어 발생했습니다. 이 기술은 데이터베이스 작업 성능을 크게 향상시킬 수 있습니다.
그러나 이 기술은 일반적으로 java, php, .net에서 사용되며, 일부 기업 웹사이트에서는 이러한 기술이 전혀 필요하지 않기 때문에 ASP는 거의 사용되지 않습니다.
사용할 수 없다는 것은 아닙니다. 다음은 웹 페이지의 액세스 속도를 높이고 데이터베이스에 대한 부담을 줄일 수 있는 것으로 연구된 ASP 버전입니다.
1. 데이터베이스 연결 파일 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 함수 함수 CreateDbConn()Dim DbConn,ConnKeySet DbConn = Server.CreateObject(ADODB.Connection)DbConn. Open ConnstrConnKey = GetRandString(10)DbPool.Add ConnKey,DbConnEnd 함수 함수 GetDbConn()Dim CurKey,KeysIf DbPool.Count > 0 ThenKeys = DbPool.Keys ' 키 이름을 가져옵니다. CurKey = Keys(0)Response.Write Cur DbConn 키는 다음과 같습니다. & CurKey & <br />Set Conn = Server.CreateObject(ADODB.Connection)Set Conn = DbPool(CurKey)If Conn.State = adStateClosed Then '이 연결이 닫혀 있으면 풀에서 로그아웃하고 사용 가능한 새 연결을 만들어 풀에 추가합니다. DbPool.Remove CurKeyCall CreateDbConn() '새 연결을 만들어 풀에 추가합니다. Set GetDbConn = GetDbConn()Else '그렇지 않으면, 제거 풀에서 로그아웃한 다음 복사된 개체를 DbPool로 반환합니다.Remove CurKeySet GetDbConn = ConnExit FunctionEnd IfElseResponse.Write 연결 풀을 모두 사용했습니다. 응용 프로그램을 다시 초기화하십시오. Response.EndEnd ifEnd 함수 함수 FreeDbConn(DbConn)DbPool. GetRandString(10) ,DbConnEnd 함수 추가
2. 글로벌 파일 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 '지정된 숫자를 생성합니다 데이터베이스 연결CreateDbConn()NextEnd Sub Sub Application_OnEndDbPool.RemoveAllEnd Sub%>
3. 테스트 파일 test.asp
<!--#include file=DbPool.asp-->< %Response.Write 테스트 시작:<br>Response.Write 현재 개체 수: & DbPool.Count & <br /> Set dbconn = Server.CreateObject(ADODB. Connection)Set dbconn = GetDbConn()Response.Write 풀에서 하나의 연결 가져오기 <br />Response.Write 현재 개체 수 : & 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 풀에 하나의 연결 해제 <br />Response.Write Current Objects 개수 : & DbPool.Count & <br /> %>