为了账号安全,请及时绑定邮箱和手机立即绑定

sql server 游标中 select语句是查找所有数据到内存中还是读一条取一条?

sql server 游标中 select语句是查找所有数据到内存中还是读一条取一条?

翻翻过去那场雪 2018-12-07 10:21:08
declare mycursor cursor local static read_only forward_only for SELECT p.Id,p.parno,pc.ClassName,pv.attr10,pv.attr11,pv.attr4 FROM dbo.Pro_View OPEN mycursor FETCH NEXT from mycursor into WHILE @@FETCH_STATUS = 0 BEGIN FETCH NEXT from mycursor into @id,@parno,@classname,@attr10,@attr11,@attr4 END CLOSE mycursor 上面红色语句是把所有的数据都取出来当内存中还是在执行 FETCH NEXT from mycursor into 的时候再从数据库中取出来??
查看完整描述

5 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

应该是根据SQL Server本身的可用内存和CPU负载决定是否一次加到内存。

查看完整回答
反对 回复 2019-01-07
?
慕斯王

TA贡献1864条经验 获得超2个赞

SQL Server 有个设置:每次查询占用的最小内存,默认为 1024KB;

查看完整回答
反对 回复 2019-01-07
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

想想如果查找的内容很多,内存放不下了,是不是就不能查找了?

查看完整回答
反对 回复 2019-01-07
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

游标中select查询是读一条取一条,虽然比较慢,但是也有他的好处,比如,不会把服务器卡死

查看完整回答
反对 回复 2019-01-07
  • 5 回答
  • 0 关注
  • 713 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信