添加索引后的执行时间

时间:2012-10-11 12:41:32

标签: sql sql-server performance indexing

索引可提高数据访问性能。我尝试创建索引,但时间消耗没有区别。我在这里错过了什么吗?

我的架构看起来像这样。 (49列)。 Id - PrimaryKey(聚集索引)

Id | Name | Age | CountryId | CourseId | ....... | EnrolledOn

表中有大约425,000条记录。考虑到country和course是用于过滤记录的列,我创建了一个包含这两列的复合索引(这两列是外键)。

我尝试了以下查询。

Select * From Students Where CountryId = 1 And CourseId = 1

没有索引和索引,查询花了11秒。

  

注意:大约415,000条记录符合上述条件。这是否是消耗时间没有差异的原因。

任何人都可以帮我这个。

CREATE NONCLUSTERED INDEX IX_Country_Course ON Students(CountryId,CourseId)

2 个答案:

答案 0 :(得分:1)

而不是查询中的*,只明确指定要选择的列,并在索引中包含included columns这些列。这样可以缩短选择时间。

希望您知道索引中列的顺序很重要..

答案 1 :(得分:1)

如果您从表中请求几乎每一行,索引都会做很少的事情。在这种情况下,如果只选择索引中的字段,则只会加速,因此不需要原始表来获取所有请求的数据。

因此,仅选择countryid,您可能会在上述问题案例中看到一些好处