为何建了索引之后仍然不走索引呢

[复制链接]
查看11 | 回复2 | 2009-2-20 09:44:20 | 显示全部楼层 |阅读模式
大家好,小弟实在菜鸟,对于以下问题是在弄不懂:
在用户u1下的表t1上创建了索引idx_t1_c1,索引字段为c1
然后对索引字段进行查询:
select * from u1 where c1 = value_of_c1;
执行计划里面对本语句居然给出来的是
TABLE ACCESS FULL
而对字段C2的索引idx_t1_c2进行检索时却给出的是INDEX RANGE SCAN
除了在C1,C2还有其它两个字段C3,C4上还建了一个组合索引,idx_t1_c1和idx_t1_c2这两个索引没有什么区别的
想求教为什么为这样呢,谢谢????
回复

使用道具 举报

千问 | 2009-2-20 09:44:20 | 显示全部楼层
可以先分析一下表和索引,做拄状图
如果还是FULL TABLE SCAN, 说明你c1字段的disnict太少,走索引会更慢.
C2走index range scan这正常的,没什么奇怪.
在分析SQL的时候不能单独的考虑为什么是索引,或者全表扫描,应该关注的字段数据分部,这很重要.
回复

使用道具 举报

千问 | 2009-2-20 09:44:20 | 显示全部楼层
分析之后再看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行