What happens when NOT closing recordsets in classic asp?

老子叫甜甜 提交于 2019-12-13 02:35:33

问题


In legacy applications at work, i see not closed recordsets scattered on lots of pages.

  • What consequences does this have?
  • Does the connection close automatically?
  • Are resources released at the end of every request?

Update:

  • Another question related to this problem i think

txn!


回答1:


  • What consequences does this have?

Resources don't get freed up as quickly, and depending on the rest of the code performance will suffer.

  • Does the connection close automatically?
  • Are resources released at the end of every request?

At the end of page execution, all connections are terminated and all resources released. Some people figure that since this happens, there is no need to worry about explicitly closing connections and/or releasing resources.

All things being equal, reliance on this is not something that is encouraged as you never know how things will play out in heavy traffic - which is why all the good tutorials/instructors will tell you to open only when you need, and release as soon as you are done.




回答2:


Close recordset does not close the connection

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

You should always close connections as soon as possible, to release them back into the connection pool.

A system that leaks connections will slow down and gradually grid to a halt.




回答3:


If you don't close it you will have memory leaks, which can quickly eat up your resources. IIS will eventually clean resources for you, but it's not very reliable. It's safer and more reliable to explicitly close your recordset and then set it to nothing to free up resources. Also be sure close your connection and set it to nothing as well.



来源:https://stackoverflow.com/questions/1608165/what-happens-when-not-closing-recordsets-in-classic-asp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!