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

发布于 2024-07-06 09:28:13 字数 51 浏览 6 评论 0原文

使用 while 循环代替游标是个好主意吗?

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

Is it a good idea to use while loop instead of a cursor?

What are the advantages/disadvantages of cursors?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

后eg是否自 2024-07-13 09:28:13

我遵循以下建议:

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

— 蒂姆·查普曼 (Tim Chapman) 比较 SQL Server 2008 中的游标与 WHILE 循环性能

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

I'm following this bit of advice:

[...] which is better: cursors or
WHILE loops? Again, it really depends
on your situation. I almost always use
a cursor to loop through records when
necessary. The cursor format is a
little more intuitive for me and,
since I just use the constructs to
loop through the result set once, it
makes sense to use the FAST_FORWARD
cursor. Remember that the type of
cursor you use will have a huge impact
on the performance of your looping
construct.

— 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.

墨落成白 2024-07-13 09:28:13

其中一些取决于 DBMS,但一般来说:

优点:

  • 在逐行处理时优于循环

  • 工作得相当好处理大型数据集

缺点:

  • 扩展性较差

  • 使用更多服务器资源

  • < p>增加 tempdb 上的负载

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

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)

沉溺在你眼里的海 2024-07-13 09:28:13

我会问你你在用那个光标/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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文