20

使用 while 循环而不是游标是个好主意吗?

游标的优点/缺点是什么?

4

3 回答 3

10

我正在遵循以下建议:

[...] 哪个更好:游标还是 WHILE 循环?同样,这真的取决于你的情况。我几乎总是在必要时使用游标来循环记录。游标格式对我来说更直观一些,因为我只使用这些结构来循环遍历结果集一次,所以使用 FAST_FORWARD 游标是有意义的。请记住,您使用的游标类型将对循环结构的性能产生巨大影响。

— Tim Chapman 在比较 SQL Server 2008 中的游标与 WHILE 循环性能

链接的文章包含如何实现每种方法的简单示例。

于 2011-01-13T20:07:52.567 回答
9

其中一些取决于 DBMS,但通常:

优点:

  • 在逐行处理方面优于循环

  • 适用于大型数据集

缺点:

  • 也不要缩放

  • 使用更多服务器资源

  • 增加 tempdb 的负载

  • 如果使用不当可能会导致泄漏(例如,打开而没有相应的关闭)

于 2008-09-26T14:32:47.480 回答
1

我会问你在用那个游标/while 循环做什么。

如果您要更新或返回数据,为什么不使用适当的 WHERE 子句。我知道有人会说你永远不应该使用游标。

于 2008-09-26T14:36:51.590 回答