什么时候应该使用sql游标

时间:2010-08-28 07:11:54

标签: tsql

大家告诉我什么时候应该使用光标?

感谢 SAJ

3 个答案:

答案 0 :(得分:7)

理想情况下尽量少。游标具有相当高的固有处理开销

  1. 您正在执行的过程无法重写为基于集合的操作。 (例如,表格列表中的invoking DBCC DBREINDEX in turn
  2. 基于集合的操作具有更差的渐近复杂度。对于运行聚合,基于集合的解决方案具有二次复杂度,而游标工作负载则呈线性增长。
  3. 对于最后一种情况,使用SQL CLR solution比使用标准游标要快得多。

答案 1 :(得分:2)

请阅读: http://wiki.lessthandot.com/index.php/Cursors_and_How_to_Avoid_Them

除非您是数据库管理员,否则您应该能够在不使用游标的情况下完成整个职业生涯。

答案 2 :(得分:-1)

以下是来自Oracle的一些信息:

在SQL * FORMS 3.0中使用显式游标的快速指南 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~

许多用户认为Explicit Cursors是一种难以检索的方法 来自数据库的数据。实际上,只需要几个基本概念 实施这种灵活的方法,从而最大限度地提高效率 开发者控制。

游标是一个命名的SQL语句。来自PL / SQL用户指南和 参考手册(第2-16页):

当查询返回多行时,您可以将游标显式定义为:

  • 处理超出查询返回的第一行
  • 跟踪当前正在处理的行。

游标允许设计者精确控制返回的多个值 通过游标的SELECT语句。

请注意,仅在特定情况下才应使用显式游标。对于大多数 应用程序,默认数据库块足够且易于使用 比显式游标。请阅读本文档的最后一节 显式游标可能适合的情况。