SQL Server中的索引查找与索引扫描

时间:2016-11-08 12:06:16

标签: sql sql-server sql-server-2008

请通过示例说明MS SQL服务器中的索引扫描和索引查找之间的区别,因为了解它的实际用途会有所帮助。提前致谢。

2 个答案:

答案 0 :(得分:36)

以下是使用扫描进行此查询的文本showplan(为了简洁而略微编辑):

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

下图说明了扫描:

enter image description here

以下是使用搜索的同一查询的文本showplan:

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

enter image description here

查看此SQL Server Plans : difference between Index Scan / Index Seek

答案 1 :(得分:5)

简单来说, 索引扫描或表扫描是指SQL Server必须扫描数据或索引页以查找相应的记录。扫描与搜索相反,其中搜索使用索引来精确定位满足查询所需的记录。

您的问题类似于已在stackoverflow中发布的问题 从下面的链接中获取

#Index scan vs Index seek

您还可以从以下链接获取信息

#Index scan vs Index seek in brief