游标与 while 循环 - 游标的优点/缺点是什么?
使用 while 循环代替游标是个好主意吗?
游标的优点/缺点是什么?
Is it a good idea to use while loop instead of a cursor?
What are the advantages/disadvantages of cursors?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我遵循以下建议:
— 蒂姆·查普曼 (Tim Chapman) 比较 SQL Server 2008 中的游标与 WHILE 循环性能
链接的文章包含如何实现每种方法的简单示例。
I'm following this bit of advice:
— Tim Chapman in Comparing cursor vs. WHILE loop performance in SQL Server 2008
The linked article contains simple examples of how to implement each approach.
其中一些取决于 DBMS,但一般来说:
优点:
在逐行处理时优于循环
工作得相当好处理大型数据集
缺点:
扩展性较差
使用更多服务器资源
如果使用不正确可能导致泄漏(例如打开而没有相应的关闭)
Some of these depends on the DBMS, but generally:
Pros:
Outperform loops when it comes to row-by-row processing
Works reasonably well with large datasets
Cons:
Don't scale as well
Use more server resources
Increases load on tempdb
Can cause leaks if used incorrectly (eg. Open without corresponding Close)
我会问你你在用那个光标/while 循环做什么。
如果您要更新或返回数据,为什么不使用正确的 WHERE 子句。 我知道有人会说你永远不应该使用游标。
I would ask you what you are doing with that cursor/while loop.
If you are updating or returning data why don't you use a proper WHERE clause. I know people who would say you should never use cursors.