4

谁能告诉我在 SQL 查询中使用 OPTION (FAST n) 有什么缺点。

比如我这么快就抓取了10万条记录,但是这对SQL Server的其他进程有影响吗?


我正在接近我的问题。

我必须每周运行一次数据处理。所以第一个结果在 5-7 秒后出来,然后我对这些结果进行数据处理。结果通常由几千行组成。每一行都需要几秒钟的时间来处理。通常,该过程会等待整个结果出现,然后开始处理。结果出现在数据集中(我正在使用 c# 控制台应用程序),所以我希望前 10 个结果快速出现,以便我可以立即启动该过程,然后将其余行出现并添加到队列中等待那里转弯。

知道我该怎么做。

谢谢

4

1 回答 1

10

选项 fast 强制查询优化器不优化查询的总运行时间,而是优化获取前 N 行所需的时间。

如果您有 2 个要连接的 100 万行的表,则标准查询计划是一个表的 hashmap(一百万行的临时表),然后在另一个表上使用 hashmap 查找。

快速 10 优化可能只使用嵌套循环,因为构建 100 万行 hashmap 的工作量比嵌套循环的快速 10 步要多得多。如果你毕竟有 100 万行,嵌套循环可能需要 3 倍的时间,但在快速 10 下,你会更快地获得这 10 行。(这个例子假设存在一个合适的索引)

于 2014-05-29T04:48:42.267 回答