游标与while循环 - 游标的优点/缺点是什么?

时间:2008-09-26 14:23:07

标签: sql-server cursor

使用while循环而不是游标是个好主意吗?游标有哪些优点/缺点?

4 个答案:

答案 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)

游标的一些缺点是here

然后还有this(实际上是一个非常有趣的问题 - “万圣节问题”)