create index hdr.INDEX_USER on hdr.tb_User_Feel_temp(user)tablespace GT
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
)
这样建立的索引,为什么查询的时候不走索引语句:select * from tb_User_Feel_temp where user ='aaa'但是对于另外一张表,表结构完全一样,建立索引的语句也一摸一样,却能走索引
两个索引的属性GLOBAL_STATS
一个是YES一个是NO
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
)
这样建立的索引,为什么查询的时候不走索引语句:select * from tb_User_Feel_temp where user ='aaa'但是对于另外一张表,表结构完全一样,建立索引的语句也一摸一样,却能走索引
两个索引的属性GLOBAL_STATS
一个是YES一个是NO
现在oracle默认基于cost优化模式,是要根据表中的统计数据来计算成本自动决定执行计划的。两表的数据是一样的吗?
你可以收集统计数据后,再对比一下两表的执行计划。
GLOBAL_STATS是yes(dbms_stats包分析过)或no(analyze分析过)影响不大。
按道理你那语句是会走索引的,这种情况应该是走rule模式。
begin
dbms_stats.gather_table_stats('用户名',TableName,cascade => true);--cascade 为true时,表示对索引也进行分析;
end;