oracle index基础问题立马给分 !!!

activetblack 2010-05-24 06:14:25
本人在一个select 语句中 使用了3个index的条件 3个index都用到了 但是一共有4个index 但是第4个条件select语句中没有 是否 这样就不会使用到第4个index了。
也就是说 使用index就必须使用对应的条件对吗???


谢谢回答
...全文
93 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
minoboy 2010-05-24
  • 打赏
  • 举报
回复
楼主,对ORACLE来说,一般建立3个索引就够了.
超过4个,索引查起来反而会更加慢
化繁为简2007 2010-05-24
  • 打赏
  • 举报
回复
楼上说的好深奥啊
tangren 2010-05-24
  • 打赏
  • 举报
回复
1、有索引,没有该索引列条件 ,该索引不一定能用到,
但有些时候,在where中没有该索引列过滤条件,但可以用到索引,如count记录就可能用到。
2、有索引,有该索引列也条件,也不一定用得到该索引,要看该索引的效率。
da21 2010-05-24
  • 打赏
  • 举报
回复
如3楼所说,index的知识很丰富,不是三言两语就能说清的,
强调一下:index没用到不代表会慢,用到了也不代表会快。
小表没必要用index
大表查小部分数绝对建议用index
不说了。。。建议你看下相关的书。
dingjun123 2010-05-24
  • 打赏
  • 举报
回复
不改sql??估计很难,当然有时候比如select ... from table不加条件也是可以用index的。
你把你的表以及建的index和sql语句贴出来看看
activetblack 2010-05-24
  • 打赏
  • 举报
回复
谢谢大大

那我有一个select用到4张表 其中一张大数据量 没张表都index但是 由于 select语句不好这么改动 也就是 他只用到 3个条件 用到了3个index但是由于这样出现了一个 table access full wip_operade

也就是一个index没用到导致了 速度效率变慢 不知道有没有 啥方法 解决吗??

谢谢 我加分得!!
dingjun123 2010-05-24
  • 打赏
  • 举报
回复
当然用不到了,你的条件正好用到3个也只能针对你的sql,有时候就算你条件中指定了index的列,也很可能一个都用不到。

还是要了解oracle sql为什么要用index以及使用index的相关条件,index的种类以及优缺点,内容就太多了,不是你想象的那么简单,还要结合CBO来看
心中的彩虹 2010-05-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 activetblack 的回复:]
本人在一个select 语句中 使用了3个index的条件 3个index都用到了 但是一共有4个index 但是第4个条件select语句中没有 是否 这样就不会使用到第4个index了。
也就是说 使用index就必须使用对应的条件对吗???


谢谢回答
[/Quote]

如果语句中有的话则会用到第四个索引
hyee 2010-05-24
  • 打赏
  • 举报
回复
对,使用index的首要条件是where子句必须包含索引所依赖的列的过滤.
当然也有例外,你可以忽略掉这种例外

17,380

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧