我要在存储过程拼接SQL语句,由于无法预见最终拼接出的SQL语句的长度,所以在声明变量时,我尽可能将其长度设置长点,比如: 1 declare @sql nvarchar(1000)
但这样,就会占用更多的内存,我想请问,存储过程执行后,变量所占用的内存会即使释放吗? 存储过程执行后,所使用的内存肯定是会释放的。
当然,如果你在存储过程中使用了游标,那么也必须要显示的释放游标占用的内存。
另外,存储过程的执行计划,是会缓存到内存中的,从而实现编译一次,运行多次 如果你无法预估长度,变长反而是很好的选择,既然长度会变,那么也不存在内存占用问题,nvarchar才1000你就担心的话一些大系统就惨了
|