组合索引问题,咋有时候用,有时候不用呢?

linfengc 2011-09-22 03:25:36
5kw的表,
select count(*) from t_test2 where etime < '2011-09-19 13:00:00' and pid < 1000000000
如果有组合索引(etime,pid),还有单独的索引(pid),上面的语句使用组合索引。返回8w多

select count(*) from t_test2 where etime < '2011-09-19 13:00:00' and pid < 100
但是这句就使用了一个pid索引,再时间过滤,很慢,why?返回2k多
如果去掉pid索引,这句就也用组合索引了,明显快很多。

但是如果去掉pid索引,单独查pid的话,会使用组合索引,但是很慢。

矛盾啊。
...全文
87 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
youdan1990 2011-09-22
  • 打赏
  • 举报
回复
oralce执行计划好像会根据数据量来决定走什么索引
5kw的表 应该有分区 分区字段是etime吗?
etime有起始时间不?
qin_phoenix 2011-09-22
  • 打赏
  • 举报
回复
有执行计划吗,贴出来看看

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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