作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我先走了
我 100% 属于集合运算阵营。但是当设置逻辑时会发生什么在整个所需的输入域上进行检索会导致如此大的检索,以至于查询显着减慢,变得缓慢,或者基本上需要无限的时间?
在这种情况下,我将使用可能最多数十行(而不是我的目标是数百万行)的小游标(或 while 循环)。因此,我仍在(分区的子)集中工作,但我的检索运行速度更快。
当然,一个更快的解决方案是从外部并行调用分区输入域,但这会引入与外部系统的交互,并且当“足够好”的速度可以通过串行循环实现时,可能只是不值得(尤其是在开发过程中)。
最佳答案
我有很多情况需要读取配置表中的行并生成和执行代码,或者在许多元编程场景中。
也有一些情况,因为优化器不够智能,游标的表现就很出色。在那些情况下,要么你脑子里有元信息,这些元信息根本不会通过表上的索引或统计信息透露给优化器,要么代码太复杂以至于连接(通常是重新连接)可以以基于光标的方式可视化它们的方式进行优化。在 SQL Server 2005 中,我相信 CTE 倾向于使代码看起来更简单,但优化器是否也认为它们更简单很难知道 - 这归结为将执行计划与您认为可以完成的方式进行比较最有效地调用电话。
一般规则 - 除非必要,否则不要使用游标。但在必要时,不要让自己为难。
关于SQL 游标...您会捍卫任何用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/172526/
我是一名优秀的程序员,十分优秀!