Что происходит, если НЕ закрывать наборы записей в классическом asp?

StackOverflow https://stackoverflow.com/questions/1608165

  •  05-07-2019
  •  | 
  •  

Вопрос

В устаревших приложениях на работе я вижу незакрытые наборы записей, разбросанные по множеству страниц.

  • Какие последствия это имеет?
  • Закрывается ли соединение автоматически?
  • Освобождаются ли ресурсы в конце каждого запроса?

Обновить:

тх-эн!

Это было полезно?

Решение

  • Какие последствия это имеет?

Ресурсы освобождаются не так быстро, и в зависимости от остальной части кода производительность будет снижаться.

  • Закрывается ли соединение автоматически?
  • Освобождаются ли ресурсы в конце каждого запроса?

В конце выполнения страницы все подключения прекращаются и все ресурсы освобождаются.Некоторые люди полагают, что, поскольку это происходит, нет необходимости беспокоиться о явном закрытии подключений и / или освобождении ресурсов.

При прочих равных условиях полагаться на это не рекомендуется, поскольку вы никогда не знаете, как будут развиваться события в условиях интенсивного движения - вот почему все хорошие руководства / инструкторы скажут вам открывать только тогда, когда вам нужно, и выпускать, как только вы закончите.

Другие советы

Закрыть набор записей не закрывает соединение

http://www.devguru.com/technologies/ado/QuickRef/recordset_close.html

Вы всегда должны закрывать соединения как можно скорее, чтобы вернуть их обратно в пул подключений.

Система, в которой происходит утечка соединений, замедлится и постепенно выйдет из строя.

Если вы не закроете его, у вас возникнут утечки памяти, которые могут быстро израсходовать ваши ресурсы.IIS в конечном итоге очистит ресурсы для вас, но это не очень надежно.Безопаснее и надежнее явно закрыть свой набор записей, а затем установить для него значение nothing, чтобы освободить ресурсы.Также обязательно закройте свое соединение и также установите для него значение nothing.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top