表tab2(a,b,c,d) 在列a,b上有唯一聚集索引。
当
select *
from tab2
where a>0 and a<1001 and b = '273773737'
这个时候的查询是clustered index seek方法查的
但是如果
select *
from tab1
where a>0 and a<1001 and b = '273773737'
union all
select *
from tab2
where a>0 and a<1001 and b = '273773737'
这个时候竟然是index seek 和clustered index scan的混合查询,高手能解释一下吗,谢谢了
8 个解决方案
#1
学习
#2
等高手解释!累了!休息一下
#3
tab1(a,b,c,d) 在列a,b上有唯一聚集索引,在a上有一个非聚集索引
-----
在a上也做一个非聚集索引?
-----
在a上也做一个非聚集索引?
#4
我没有试,只有回家再试试看,公司给我配的本本没环境,希望大家能给我解释解释 ,我郁闷了。
#5
我没有试,只有回家再试试看,公司给我配的本本没环境,希望大家能给我解释解释 ,我郁闷了。
#6
a作为聚集索引的首列,不必单独做非聚集索引了。
#7
按照你的意思,我在自己的机子上做了相关的实验,结果两次查询都是seek,不存在scan。可能是你的统计信息长时间没有更新了,请更新统计信息后,再测试。
#8
把你的SQL代码粘上来好吗,怎么更新阿
#1
学习
#2
等高手解释!累了!休息一下
#3
tab1(a,b,c,d) 在列a,b上有唯一聚集索引,在a上有一个非聚集索引
-----
在a上也做一个非聚集索引?
-----
在a上也做一个非聚集索引?
#4
我没有试,只有回家再试试看,公司给我配的本本没环境,希望大家能给我解释解释 ,我郁闷了。
#5
我没有试,只有回家再试试看,公司给我配的本本没环境,希望大家能给我解释解释 ,我郁闷了。
#6
a作为聚集索引的首列,不必单独做非聚集索引了。
#7
按照你的意思,我在自己的机子上做了相关的实验,结果两次查询都是seek,不存在scan。可能是你的统计信息长时间没有更新了,请更新统计信息后,再测试。
#8
把你的SQL代码粘上来好吗,怎么更新阿