+ -
当前位置:首页 → 问答吧 → 游标是不是一旦declare后就要deallocate掉?

游标是不是一旦declare后就要deallocate掉?

时间:2011-12-22

来源:互联网

我的意思就是说假如declare了一个cursor,是不是它就一直存在于内存中了,不管是否将其open和close,都必须要将cursor deallocate掉才行?否则它就一直存在于内存中直到SQL SERVER进程结束?

作者: BusyDonkey   发布时间: 2011-12-22

en.

作者: geniuswjt   发布时间: 2011-12-22

"否则它就一直存在于内存中直到SQL SERVER进程结束"。

这点好像不对,应该好像是只要数据库连接释放了,连接中声明的游标也就跟着释放了。因为下次连接到数据库后我又可以创建同名的游标,说明上一个连接创建的游标已经不见了。

作者: BusyDonkey   发布时间: 2011-12-22

引用 2 楼 busydonkey 的回复:

"否则它就一直存在于内存中直到SQL SERVER进程结束"。

这点好像不对,应该好像是只要数据库连接释放了,连接中声明的游标也就跟着释放了。因为下次连接到数据库后我又可以创建同名的游标,说明上一个连接创建的游标已经不见了。


不见了,不一定就等于不在了.
创建后就要释放,一个好的程序员应该养成这样的习惯,不要以为反正系统会给释放,结果谁都没释放,后果是,或者它无谓地占着空间,或者会出点什么溢出之类的事情,特别是那些在循环中创建的东西,一定得在循环中用完后释放.

作者: qianjin036a   发布时间: 2011-12-22

引用 3 楼 qianjin036a 的回复:
引用 2 楼 busydonkey 的回复:

"否则它就一直存在于内存中直到SQL SERVER进程结束"。

这点好像不对,应该好像是只要数据库连接释放了,连接中声明的游标也就跟着释放了。因为下次连接到数据库后我又可以创建同名的游标,说明上一个连接创建的游标已经不见了。


不见了,不一定就等于不在了.
创建后就要释放,一个好的程序员应该养成这样的习惯,不要以为反正系统会给释放……


恩 的确是这样。应该养成不使用即释放的习惯 免得造成不必要的资源浪费。谨记老大的教诲!

作者: BusyDonkey   发布时间: 2011-12-22

我只是对这个东西什么时候释放感到好奇而已 呵呵

作者: BusyDonkey   发布时间: 2011-12-22