假设您有一个查询将产生 1.000.000 行,但 SQL Server 估计只有 100 行。然后 SQL Server 估计使用表查找的 100 次索引查找比全表扫描更快。但相反,它最终会进行 1.000.000 次索引查找和查找!
在这种情况下,添加force scan
提示将提高查询的性能。
请注意,这种情况是不寻常的。SQL Server 尝试针对最坏的情况进行优化,并且不会使用搜索,除非非常确定没有太多搜索。这就是为什么forceseek
更经常使用的原因forcescan
。