加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server快进游标

发布时间:2020-12-12 07:49:24 所属栏目:MsSql教程 来源:网络整理
导读:通常认为应尽可能避免在存储过程中使用游标(替换为基于集合的逻辑等).如果您采用需要迭代某些数据的情况,并且可以以只读方式进行,那么快进(只读向前)光标的效率是否比while循环更低或更低?从我的调查来看,它看起来好像光标选项通常更快,并且使用更少的读取和
通常认为应尽可能避免在存储过程中使用游标(替换为基于集合的逻辑等).如果您采用需要迭代某些数据的情况,并且可以以只读方式进行,那么快进(只读向前)光标的效率是否比while循环更低或更低?从我的调查来看,它看起来好像光标选项通常更快,并且使用更少的读取和CPU时间.我没有做过任何广泛的测试,但这是其他人发现的吗?这种类型的游标(快进)会带来额外的开销或资源,这些资源可能很昂贵而且我不知道.

所有关于不使用游标的讨论都是关于在基于集合的方法可用时避免使用游标,以及使用可更新游标等.

谢谢

解决方法

避免SQL Server中游标的“最佳实践”可追溯到SQL Server 2000及更早版本.在SQL 2005中重写引擎解决了与游标问题相关的大多数问题,特别是引入了快进选项.游标不一定比基于集合更糟糕,并且在Oracle PL / SQL(LOOP)中广泛且成功地使用.

您所指的“普遍接受”是有效的,但现在已经过时且不正确 – 假设快进游标的行为与宣传和执行一样.根据SQL2005及更高版本进行一些测试和研究

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读