首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >已向字段添加索引,但运行速度仍然很慢

已向字段添加索引,但运行速度仍然很慢
EN

Stack Overflow用户
提问于 2015-09-28 22:24:21
回答 1查看 41关注 0票数 0

我们在SQL Server 2012数据库的表中有10M条记录,我们希望根据条件检索前2000条记录。

下面是SQL语句:

代码语言:javascript
运行
复制
SELECT TOP 2000 * 
FROM Users 
WHERE LastName = 'Stokes' 
ORDER BY LastName

我已经向列LastName添加了一个非聚集索引,检索2000条记录需要9秒。我尝试创建一个带有索引的索引视图,该索引是在同一列上创建的,但无济于事,所需时间大致相同。我还能做些什么,来提高性能吗?

EN

回答 1

Stack Overflow用户

发布于 2015-09-28 22:30:43

使用select *将导致对符合条件的所有行进行键查找(=对于聚集键的每个值,数据库必须遍历聚集索引进入叶级以查找其余的值)。

您可以在实际计划中看到这一点,您还可以检查您创建的索引是否正在实际使用(=该索引的索引查找)。如果关键字查找是慢的原因,那么如果你只运行select LastName from ...,select就会变得很快。

如果实际上只需要从表中获得几列(或者表中没有那么多列),那么可以将这些列作为包含列添加到索引中,这应该会加快速度。始终在select中指定需要的字段,而不是只使用select *。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32825437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档