使用while循环而不是游标是个好主意吗?游标有哪些优点/缺点?
答案 0 :(得分:10)
其中一些取决于DBMS,但通常是:
优点:
在逐行处理
适用于大型数据集
缺点:
不要缩放
使用更多服务器资源
增加tempdb上的负载
如果使用不当会导致泄漏(例如,没有相应的关闭时打开)
答案 1 :(得分:10)
我正在遵循这一点建议:
[...]哪个更好:游标或 什么循环?再次,它真的取决于 在你的情况。我几乎总是用 一个游标循环遍历记录时 必要。光标格式为a 对我来说更直观, 因为我只是使用构造 它遍历结果集一次 有意义的是使用FAST_FORWARD 光标。记住那种类型 你使用的光标会产生巨大的影响 关于循环的性能 构造
- Tim Chapman在Comparing cursor vs. WHILE loop performance in SQL Server 2008
链接文章包含有关如何实施每种方法的简单示例。
答案 2 :(得分:1)
我会问你用光标/ while循环做什么。
如果要更新或返回数据,为什么不使用正确的WHERE子句。我知道有人会说你永远不应该使用游标。
答案 3 :(得分:0)