谁能告诉我在 SQL 查询中使用 OPTION (FAST n) 的缺点是什么。
比如我这么快就抓取了10万条记录,但这对SQL Server的其他进程有影响吗?
<小时/>我正在接近我的问题。
我必须每周运行一次数据处理。因此,第一个结果会在 5-7 秒后出现,然后我对这些结果进行数据处理。结果通常由几千行组成。每行都需要几秒钟的时间来处理。通常,该过程会等待整个结果出现,然后开始处理。结果出现在数据集中(我正在使用 c# 控制台应用程序),所以我希望快速显示前 10 个结果,以便我可以立即启动该过程,然后显示其余行并添加到队列中,等待转弯。
知道我该怎么做吗。
谢谢
最佳答案
选项 fast 强制查询优化器不优化查询的总运行时间,而是优化获取前 N 行所需的时间。
如果您想要连接 2 个包含 100 万行的表,则标准查询计划是一个表的 HashMap (包含一百万行的临时表),然后在另一个表上使用 HashMap 查找。
快速 10 优化可能只使用嵌套循环,因为构建 100 万行 HashMap 的工作量比快速 10 步嵌套循环要多得多。如果您总共有 100 万行,则嵌套循环可能需要 3 倍的时间,但在快速 10 下,您会更快地获得这 10 行。 (此示例假设存在合适的索引)
关于SQL 性能,使用 OPTION (FAST n),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13853412/