我在A表在建立了一个主键(列名为AGuid,Guid类型)和一个聚集索引(列名为CreateTime,DateTime类型)B表为A表的外表,在列AGuid上建了一个索引(非聚集索引)执行以下语句Select * form a inner join b on a.AGuid=b.AGuid 为什么执行计划中,对A表采用聚集索引扫描?如果去掉聚集索引就成了表扫描了为什么用不上AGuid上的索引呢谢谢
调试欢乐多
这样试试
Select B.* form B inner join A on B.AGuid=A.AGuid
另外,如果我专门在A表的AGuid上建索引,查询计划也是一样的
这也是为什么大家很少会看到使用OPTION和WITH提示, 因为这些提示往往限制让查询使用一种较为固定的方法, 如果数据经常变化, 这种做法往往导致大部分情况下查询性能并不好.