Что происходит, если НЕ закрывать наборы записей в классическом asp?
-
05-07-2019 - |
Вопрос
В устаревших приложениях на работе я вижу незакрытые наборы записей, разбросанные по множеству страниц.
- Какие последствия это имеет?
- Закрывается ли соединение автоматически?
- Освобождаются ли ресурсы в конце каждого запроса?
Обновить:
тх-эн!
Решение
- Какие последствия это имеет?
Ресурсы освобождаются не так быстро, и в зависимости от остальной части кода производительность будет снижаться.
- Закрывается ли соединение автоматически?
- Освобождаются ли ресурсы в конце каждого запроса?
В конце выполнения страницы все подключения прекращаются и все ресурсы освобождаются.Некоторые люди полагают, что, поскольку это происходит, нет необходимости беспокоиться о явном закрытии подключений и / или освобождении ресурсов.
При прочих равных условиях полагаться на это не рекомендуется, поскольку вы никогда не знаете, как будут развиваться события в условиях интенсивного движения - вот почему все хорошие руководства / инструкторы скажут вам открывать только тогда, когда вам нужно, и выпускать, как только вы закончите.
Другие советы
Закрыть набор записей не закрывает соединение
http://www.devguru.com/technologies/ado/QuickRef/recordset_close.html
Вы всегда должны закрывать соединения как можно скорее, чтобы вернуть их обратно в пул подключений.
Система, в которой происходит утечка соединений, замедлится и постепенно выйдет из строя.
Если вы не закроете его, у вас возникнут утечки памяти, которые могут быстро израсходовать ваши ресурсы.IIS в конечном итоге очистит ресурсы для вас, но это не очень надежно.Безопаснее и надежнее явно закрыть свой набор записей, а затем установить для него значение nothing, чтобы освободить ресурсы.Также обязательно закройте свое соединение и также установите для него значение nothing.