In diesem Artikel wird hauptsächlich die von Asp implementierte Funktion zum Teilen der Datenbankverbindung vorgestellt. Diese Funktion kann die Zugriffsgeschwindigkeit von Webseiten beschleunigen und den Druck auf die Datenbank verringern.
Datenbankverbindungen sind eine kritische, begrenzte und teure Ressource, insbesondere in Webanwendungen für mehrere Benutzer. Die Verwaltung von Datenbankverbindungen kann die Skalierbarkeit und Robustheit der gesamten Anwendung erheblich beeinträchtigen und die Leistungsindikatoren des Programms beeinflussen. Um dieses Problem zu lösen, wurde der Datenbankverbindungspool vorgeschlagen. Der Datenbankverbindungspool ist für die Zuweisung, Verwaltung und Freigabe von Datenbankverbindungen verantwortlich. Er ermöglicht es Anwendungen, eine vorhandene Datenbankverbindung wiederzuverwenden, anstatt eine neue Datenbankverbindung freizugeben, deren Leerlaufzeit die maximale Leerlaufzeit überschreitet, um Fehler aufgrund einer fehlgeschlagenen Freigabe zu vermeiden Die Datenbankverbindung wird durch fehlende Datenbankverbindung verursacht. Diese Technologie kann die Leistung von Datenbankoperationen erheblich verbessern.
Diese Technologie wird jedoch im Allgemeinen in Java, PHP und .net verwendet, da einige Unternehmenswebsites diese Technologie überhaupt nicht benötigen.
Es ist nicht so, dass es nicht verwendet werden kann. Im Folgenden finden Sie die untersuchte ASP-Version, die die Zugriffsgeschwindigkeit von Webseiten beschleunigen und den Druck auf die Datenbank verringern kann.
1. Datenbankverbindungsdatei 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 Funktion Funktion 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 ' Holen Sie sich den Schlüsselnamen. CurKey = Keys(0)Response.Write Cur DbConn Key ist: & CurKey & <br />Set Conn = Server.CreateObject(ADODB.Connection)Set Conn = DbPool(CurKey)If Conn.State = adStateClosed Then 'Wenn diese Verbindung geschlossen wurde, melden Sie sie vom Pool ab, erstellen Sie eine neue verfügbare Verbindung und fügen Sie sie dem Pool hinzu. DbPool.Remove CurKeyCall CreateDbConn() 'Erstellen Sie eine neue Verbindung und fügen Sie sie dem Pool hinzu. Set GetDbConn = GetDbConn()Else 'Sonst Entfernen Sie es. Melden Sie sich vom Pool ab und geben Sie dann das kopierte Objekt an DbPool zurück.Remove CurKeySet GetDbConn = ConnExit FunctionEnd IfElseResponse.Write Der Verbindungspool ist aufgebraucht. Bitte initialisieren Sie die Anwendung erneut. Response.EndEnd ifEnd Function Function FreeDbConn(DbConn)DbPool. Fügen Sie die Funktion GetRandString(10) und DbConnEnd hinzu
2. Globale Datei 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 'Erstellt die angegebene Nummer der DatenbankverbindungCreateDbConn()NextEnd Sub Sub Application_OnEndDbPool.RemoveAllEnd Sub%>
3. Testdatei test.asp
<!--#include file=DbPool.asp-->< %Response.Write Test Start:<br>Response.Write Current Objects count : & DbPool.Count & <br /> Set dbconn = Server.CreateObject(ADODB. Connection)Set dbconn = GetDbConn()Response.Write eine Verbindung aus dem Pool abrufen <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 Geben Sie eine Verbindung zum Pool <br />Response.Write Current Objects frei count: & DbPool.Count & <br /> %>