索引搜索与SQL Server中的索引扫描

问题描述:

请使用示例示例说明MS SQL服务器中索引扫描与索引搜索之间的区别,因为它将有助于了解它的真实用途。提前致谢。索引搜索与SQL Server中的索引扫描

+3

可能重复获取信息[SQL Server计划:索引扫描/索引查找之间的差异](http://stackoverflow.com/questions/1136524/sql-server-plans-difference-between-inde x-scan-index-seek) – damienc

下面是一个使用扫描此查询的文本显示计划(略编辑为了简洁):

|–Table Scan(OBJECT:([ORDERS]), WHERE:([ORDERKEY]=(2))) 

下图说明扫描:

enter image description here

这里是文本显示计划对于使用查找的相同查询:

|–Index Seek(OBJECT:([ORDERS].[OKEY_IDX]), SEEK:([ORDERKEY]=(2)) ORDERED FORWARD) 

enter image description here

对此SQL Server Plans : difference between Index Scan/Index Seek

+0

所以它在我看来就像一个查找实际上存储记录的某种顺序。 Hense为什么它确切地知道这些值在表中的哪些位置?他们是以这种方式进行物理存储还是他们有某种指向物理存储记录的指针? – SnellyCat

看看简单地说, 索引扫描或表扫描是当SQL Server必须扫描数据或索引页找到相应的记录。扫描与寻道相反,寻道使用索引精确定位满足查询所需的记录。

你的问题是类似于这已经张贴在计算器的问题 从下面的链接得到它

#Index scan vs Index seek

你也可以从下面的链接

#Index scan vs Index seek in brief