首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从视图优化sql查询

从视图优化sql查询
EN

Stack Overflow用户
提问于 2012-10-13 01:13:59
回答 1查看 129关注 0票数 1

我有一个sql查询从一个非常非常慢的视图中拉出,我知道这可能是视图的错误;但是我不能改变视图。我有这个查询,想看看是否有人对如何优化它有建议,以便我可以让它更快。

代码语言:javascript
复制
SELECT COUNT(id) AS recordnum, firstname, lastname 
    FROM view 
    WHERE personid=123 AND transactiondate BETWEEN '9/1/2012' AND '9/30/2012' 
    GROUP BY firstname, lastname
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-13 01:24:33

代码语言:javascript
复制
SELECT COUNT(id) AS recordnum, firstname, lastname 
FROM view 
WHERE personid=123 AND transactiondate BETWEEN '9/1/2012' AND '9/30/2012' 
GROUP BY firstname, lastname

考虑在(personid)和/或(transactiondate)和/或(名字,姓氏)上的索引,无论哪个是最具选择性的。也就是说,如果personid将从100,000条记录中选择1条,那么personid上的索引通常就足够了。如果personid+transactiondate的组合为您提供了这种选择性,那么可以在这两列上创建一个复合索引。

如果这是您的单个执行次数最多的查询,或者如果您只是足够频繁地运行它,那么您还可以将所有列都包含到索引中,例如

代码语言:javascript
复制
create index ix_basetable_1 on basetable_inside_view(personid,transactiondate)
INCLUDE(firstname,lastname,id)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12864014

复制
相关文章

相似问题

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