ASP. Не кэшируйте соединение БД в объектах Application или Session
Не кэшируйте соединение БД в объектах Application или Session
Кэширование соединений ADO - обычно плохая стратегия. Если один объект Connection сохранен в объекте Application и используется на всех страницах, то все страницы будут бороться за использование этого соединения. Если объект Connection сохранен в ASP-объекте Session, то соединение БД будет создано для каждого пользователя. Это создает излишнюю загрузку веб-сервера и БД.
Вместо кэширования соединений БД, создавайте и уничтожайте объекты ADO на каждой ASP странице, которая использует ADO. Это эффективно, потому что IIS имеет встроенное подключение БД. Более точно, IIS автоматически допускает объединение подключений OLEDB и ODBC. Это гарантирует, что создание и уничтожение связей на каждой странице будут эффективны.
Так как соединенные наборы хранят ссылки на подключение БД, это следует, что вы должны не кэшировать соединенные наборы в объектах Application или Session. Однако, вы можете безопасно кэшировать отсоединенные наборы, которые не держат ссылку на подключение. Чтобы отсоединить набор записей, сделайте следующие два шага:
Set rs = Server.CreateObject("ADODB.RecordSet") rs.CursorLocation = adUseClient ' шаг 1 ' Заполните recordset с данными rs.Open strQuery, strProv ' Теперь отсоедините recordset от источника данных rs.ActiveConnection = Nothing ' шаг 2
Подробную информацию относительно подключений смотрите в справочниках по ADO и SQL Server.