这个怎么解释

[复制链接]
查看11 | 回复5 | 2006-4-17 13:46:34 | 显示全部楼层 |阅读模式
ORACLE10.1.0.4,优化器ALL_ROWS
DATA有500W资料,KEY是一个唯一索引,并且这个索引没有被分析。
执行
select * from data order by key
觉得速度很慢,看执行计划是全部扫描
analyze table data00 estimate statistics sample 49 percent
执行
select * from data order by key
觉得速度很慢,看执行计划是还是全部扫描
删除执行计划
ANALYZE table data0057 DELETE STATISTICS
执行
select * from data order by key
觉得速度很快,看执行计划是还是INDEX FULL SCAN
这个怎么解释
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
select * from data order by key
觉得速度很快,看执行计划是还是INDEX FULL SCAN

---------- 那是因为这样前面的数据出的快,不用排序,而fts需要先排序
但整体速度,就说不好了
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
抱歉,我没有说清楚。
我觉得很奇怪,在没有分析这个表(没有对索引分析)之前这个select * from data order by key非常慢,分析之后还是慢,最后我把表的统计资料全部ANALYZE TABLE data delete statistics 之后就非常快,觉得很奇怪
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
ANALYZE TABLE data delete statistics 实际上是等于用了rule hint,适得KEY这个索引在order by 的时候被用上了.
虽然10g已经不支持rbo,但还持有backward compatibility
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
很多时候我都对CBO没有信心,把表、索引什么的都分析了,结果速度还是巨慢
而往往加上提示让它走RBO,速度马上提升几个数量级
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
在实际调优过程中也常常遇到这种情况,真的是:没有最优,只有更优...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行