游标与##(虚表),哪个更耗内存,要说出理由就有分

mophi 2003-12-08 10:56:20
游标与##(虚表),哪个更耗内存,要说出理由就有分
...全文
100 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
tongcheng 2003-12-16
  • 打赏
  • 举报
回复
游标更耗内存
原因很多
mophi 2003-12-16
  • 打赏
  • 举报
回复
有人知道吗?
mophi 2003-12-11
  • 打赏
  • 举报
回复
对不起没有说明白
我的意思是:同一条件下,例如::对相同几个表分页,用游标与##(虚表)那个对内存使用上更好一些,
pengdali 2003-12-09
  • 打赏
  • 举报
回复
楼主说的这个没有什么可比性,游标是存储记录指针,而临时表是拷贝整个记录集。楼主要说明在什么环境下的比较。
pengdali 2003-12-09
  • 打赏
  • 举报
回复
declare @ table(a int)
insert @ values(1)
insert @ values(1)
insert @ values(1)


select * from @


--2000才有
jingxijun 2003-12-09
  • 打赏
  • 举报
回复
zjcxc(邹建) :
介绍一下表变量
winnet 2003-12-09
  • 打赏
  • 举报
回复
zjcxc(邹建) :
什么是表变量????能解释解释吗??我没听过,不过按你这样说,,小的数据处理用表
变量挺合适的,,谢谢!
yoki 2003-12-08
  • 打赏
  • 举报
回复
关键是游标是一条一条纪录的处理,所以性能显然不能和临时表相比(当然是可以实现的情况下)
showmetoyou 2003-12-08
  • 打赏
  • 举报
回复
我觉得应该这么说!内存分物理内存和虚拟内存!
静止游标基本不耗内存!动态游标和虚表要看数据量的大小!关键是虚表是从产生就固定大小了!再根据实际情况增加!动态游标的话大小是不定的!由查找到的数据量,及周围数据决定!所以一般虚表更占用内存!但动态游标更耗虚拟内存!
goneaway 2003-12-08
  • 打赏
  • 举报
回复
动态游标更耗内存。
因为它不仅是个临时视图,还需要有指向某条记录的指针及指向前后相邻记录的指针开销等,有时为加快遍历速度还会加一部分记录调入内存,并且有标注顺序的要求。
lvltt 2003-12-08
  • 打赏
  • 举报
回复
认真学习
zjcxc 2003-12-08
  • 打赏
  • 举报
回复
说到游标/临时表,就应该说说SQL 2000新增的表变量.

这个家伙才是完全建立在内存中的.所以,它是最耗内存的.
但因为它是在内存中,所以也是最快的.
zjcxc 2003-12-08
  • 打赏
  • 举报
回复
临时表/游标的内存消耗应该是一样的.

因为临时表是创建在tempdb数据库中,也是一个表,占用的是磁盘空间.
而游标只是一个虚表,它只定义了指向原查询(表)的指针.也谈不上内存的消耗.

只是在效率上,两个有大的差别.
游标是完全利用不上索引的.它的处理效率比临时表差很多.


所以,一般的建议是,能用临时表,就不用游标.
lynx1111 2003-12-08
  • 打赏
  • 举报
回复
学习

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧