В этой статье в основном рассказывается о совместном использовании функции пула подключений к базе данных, реализованной Asp. Эта функция может ускорить скорость доступа к веб-страницам и снизить нагрузку на базу данных. Друзья, которым она нужна, могут обратиться к ней.
Подключения к базе данных — критически важный, ограниченный и дорогой ресурс, особенно в многопользовательских веб-приложениях. Управление подключениями к базе данных может существенно повлиять на масштабируемость и надежность всего приложения, а также повлиять на показатели производительности программы. Для решения этой проблемы был предложен пул соединений с базой данных. Пул соединений с базой данных отвечает за выделение, управление и освобождение соединений с базой данных. Он позволяет приложениям повторно использовать существующее соединение с базой данных вместо повторного установления соединения с базой данных, время простоя которого превышает максимальное время простоя, чтобы избежать ошибок из-за невозможности освобождения. соединение с базой данных. Вызвано отсутствием соединения с базой данных. Эта технология позволяет значительно повысить производительность операций с базами данных.
Однако эта технология обычно используется в Java, PHP и .net. ASP используется редко, поскольку некоторым корпоративным веб-сайтам такая технология вообще не нужна.
Дело не в том, что его нельзя использовать. Ниже представлена исследованная версия asp, которая может ускорить скорость доступа к веб-страницам и снизить нагрузку на базу данных.
1. Файл подключения к базе данных DbPool.asp.
< %Const PoolSize = 10Const Connstr = Driver={SQL Server};Server=(local);UID=sa;word=555;Database=db Функция 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 Функция Function GetDbConn()Dim CurKey,KeysIf DbPool.Count > 0 thenKeys = DbPool.Keys ' Получаем имя ключа. CurKey = Keys(0)Response.Write Cur DbConn Key Is: & CurKey & <br />Set Conn = Server.CreateObject(ADODB.Connection)Set Conn = DbPool(CurKey)If Conn.State = adStateClosed Тогда 'Если это соединение было закрыто, выйдите из пула, создайте новое доступное соединение и добавьте его в пул. 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 Test Start:<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 выберите * из mkdb,dbconn,1,1Do While Not rs.eofResponse.write Rs(v_oid) & <br />Rs.movenextloop FreeDbConn(dbconn)Response.Запишите бесплатно одно соединение в пул <br />Response.Запишите текущие объекты count: & DbPool.Count & <br /> %>