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

Pra*_*hra 21 sql-server cursor

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

ili*_*rit 10

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

优点:

  • 在逐行处理时,表现优于循环

  • 适用于大型数据集

缺点:

  • 不要扩展

  • 使用更多服务器资源

  • 增加tempdb的负载

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


Mic*_*pat 10

我正在遵循这一点建议:

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

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

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