扫描 vs 寻求

查看执行计划时,你可能会看到 SQL Server 决定执行 Seek 或 Scan。

当 SQL Server 知道它需要去的地方并且只获取特定项时,就会发生寻求。这通常发生在查询中放置好的过滤器时,例如 where name = 'Foo'

扫描是指 SQL Server 无法确切知道所需的所有数据的位置,或者如果选择了足够的数据,则确定扫描比搜索更有效。

寻求通常更快,因为他们只抓取数据的子部分,而扫描正在选择大部分数据。