我在SQL Server中创建一个简单的表:试图了解SQL执行计划
MemberId INT PRIMARY KEY Identity
Name NVARCHAR(100) NULL
Description NVARCHAR(250) NULL
已添加了一个聚集索引,当我创建成员Id作为主键的唯一指标。我没有为名称或说明添加索引。
我增加大约30,000行测试数据表中,并做了以下查询:
SELECT * FROM Members WHERE Name = 'Foo'
执行计划表示如下:
Clustered Index Scan - cost 100%
这是如何聚集索引扫描?我不预测聚集索引。我认为这将是更多的表扫描。谁可以给我解释一下这个?如果不这样做会导致表扫描到底是什么?
通常的要求是,你应该尝试在该列上创建一个具有非聚集索引的相同表格,用相同的30,000行填充它,然后对每个表格运行查询,并比较这些计划。你应该看到一个非聚集索引seek,它应该更有效率(对于这个查询,至少)。 –