首页 新闻 会员 周边

SQL Server 查询涉及多个索引字段是否扫描物理表?

0
悬赏园豆:5 [已解决问题] 解决于 2020-05-25 09:49

我想通过在索引中添加包含列来提高查询性能,现有一个疑问:
假设我对a、b两个字段分别创建索引,并把c作为a索引的包含列,就像这样:
create index ix_a on mytable(a) include(c);
create index ix_b on mytable(b);

那么像下面这样的涉及到了a和b两个索引的查询是否会扫描物理表?
select c from mytable where a > 0 and b = 'x'

换种话说,这种情况下,a索引的包含列是否会起到改进性能的作用?

戒焦戒躁的主页 戒焦戒躁 | 初学一级 | 园豆:15
提问于:2018-10-29 10:46
< >
分享
最佳答案
0

我的感觉是不用扫描全表,因为找到a就得到了c,但是我对数据库内部的实现不是是否否清楚,建议楼主读一下sql server相关的书,或者干脆做个试验,对比一下执行所用时间吧。

收获园豆:5
会长 | 专家六级 |园豆:12401 | 2018-10-29 11:01
其他回答(1)
0

应该不会全表扫描,楼主可以看下sql执行计划。
两个字段分别建索引,不如联合索引效率高。

保镖 | 园豆:759 (小虾三级) | 2018-10-29 11:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册