我认为FORCE SEEK可以提高SELECT查询的性能,但想知道FORCE SCAN是否也可以提高查询性能。
有人可以用例子解释吗?
答案 0 :(得分:3)
假设您有一个查询将产生1.000.000行,但SQL Server估计只有100个。然后SQL Server估计100个索引查找与表查找比完整表扫描更快。但相反,它最终会进行1.000.000索引查找和查找!
在这种情况下,添加force scan
提示可以提高查询的效果。
请注意,这种情况很不寻常。 SQL Server尝试针对最坏的情况进行优化,并且不会使用搜索,除非它非常确定它们没有太多。这就是为什么forceseek
被更频繁地使用forcescan
。