我先走了。
我100%属于设定操作阵营。但是当设置逻辑时会发生什么
在整个所需的输入域上进行搜索会导致如此大的检索,以至于查询速度显着减慢,变得缓慢,或者基本上需要无限的时间?
在这种情况下,我将使用一个很小的游标(或 while 循环)来处理可能最多的几十行(而不是我的目标数百万行)。因此,我仍在(分区子)集中工作,但我的检索运行得更快。
当然,更快的解决方案是从外部并行调用分区输入域,但这会引入与外部系统的交互,并且当可以通过串行循环实现“足够好的”速度时,可能不值得它(特别是在开发过程中)。
我遇到过很多情况,或者在许多元编程场景中,必须读取配置表中的行并生成和执行代码。
在某些情况下,游标的性能只是因为优化器不够智能而表现出色。在这些情况下,要么你脑子里有元信息,这些元信息根本没有通过表上的索引或统计信息透露给优化器,要么代码太复杂,以至于连接(通常是重新连接)可以简单地进行。不会以基于光标的方式可视化它们的方式进行优化。在 SQL Server 2005 中,我相信 CTE 往往会使代码看起来更简单,但很难知道优化器是否也将它们视为更简单 - 这归结为将执行计划与您认为可以完成的方式进行比较最有效地拨打电话。
一般规则 - 除非必要,否则不要使用光标。但必要时,不要为难自己。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)