关于index 的一个疑问!

[复制链接]
查看11 | 回复2 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
1.一张大表300万记录,表名my_objects;
其中object_id 是primary key,
2.建立索引my_obj2(object_id,object_name)
3. analyze table my_objects estimate statisticssample 5 percent
for all indexes
for all indexed columns;
4.select object_id, object_name from my_object where object_id=99999 and object_name='myname';
我发现系统执行计划用了主键索引,而没有用my_obj2.
5.删除my_obj2,重新建立 my_obj2(object_id,object_name)
,但是不做第三步.
再执行:select object_id, object_name from my_object where object_id=99999 and object_name='myname';
这次用了my_obj2索引.
我想知道,系统应该一直用my_obj2索引才对,为什么执行第3步,执行计划就使用不同的计划?
请指导.谢谢!!
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
做个10053看看
参考
ORACLE诊断事件
http://www.itpub.net/showthread. ... 537&pagenumber=
一条sql导致数据库整体性能下降的诊断和解决的全过程
http://www.itpub.net/showthread. ... 049&pagenumber=
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
如果我建立my_ojb2索引为 unique 索引,就是我做第3步(analyze tablefor all indexes for all indexed columns

,select * frommy_objects where object_id=99999 and object_name='myname'系统就用my_obj2索引.
是不是这个原因??
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行