为什么下述语句我的索引用不上?SELECT a.C_DPT_CDE,
b.C_PLY_NO
FROM t_sap_skdat_hist a, t_fin_plyedr_coldue b
WHERE a.C_FROM_KEY = b.c_rcpt_no其中我在表t_sap_skdat_hist表中对字段c_from_key建立了一个不唯一索引,在表t_fin_plyedr_coldue 表对字段c_rcpt_no建立了一个不唯一索引。可是在查询的时候它还是对上述两个表进行全表扫描,上述两个索引都是建的单列索引.
再还有我想问问复合索引和单列索引能不能进行关联,如果关联是不是索引失效!
请各位高手解答!
b.C_PLY_NO
FROM t_sap_skdat_hist a, t_fin_plyedr_coldue b
WHERE a.C_FROM_KEY = b.c_rcpt_no其中我在表t_sap_skdat_hist表中对字段c_from_key建立了一个不唯一索引,在表t_fin_plyedr_coldue 表对字段c_rcpt_no建立了一个不唯一索引。可是在查询的时候它还是对上述两个表进行全表扫描,上述两个索引都是建的单列索引.
再还有我想问问复合索引和单列索引能不能进行关联,如果关联是不是索引失效!
请各位高手解答!
解决方案 »
- 关于oracle备份恢复问题(oracle 11g2)?
- 请教大家一个关于分布式数据库的问题
- Oracle在触发器语句中如何取得当前用户???100分,在线等!!!!
- 第一回写oracle的存储过程,不知道那里错了很多
- start with 。。。。。connect by prior 的问题,有人碰到过吗?
- 数据丢失了(急)
- 请教一简单SQL语句
- 请问:是否可以在oracle 中操作异种数据库吗??
- 在存储过程中,怎么执行一个语句?
- 关于connect by的一个问题,请教高人!
- 天要塌了,救救我的同事吧!!!
- 对一个表执行SELECT语句后得到一个结果集,如何从这个结果集中得到这个表的所有字段名和所有字段的类型?
执行show parameter optimizer看看参数的设置
加入hint可以提示sql采用索引,例如:
SELECT /*+index(index_name1,index_name2)*/a.C_DPT_CDE,
b.C_PLY_NO
FROM t_sap_skdat_hist a, t_fin_plyedr_coldue b
WHERE a.C_FROM_KEY = b.c_rcpt_no
索引列可以进行关联,一般情况下不会使索引失效
在8及以下版本使用复合索引时需从符合索引的第一列开始使用,如果直接使用后面的列,索引不会生效,9中对索引加入了自动跳转功能,不受这个限制