analyze对执行结果的影响

[复制链接]
查看11 | 回复7 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
相同的一个查询sql, 对sql文的基表作了analyze table ### compute statistics;
在analyze前后,2次执行该sql的执行计划相同,只有cost数不同。analyze之后的cost数大幅度增加。
执行情况,在analyze之后,执行时间也显著增加。
这是为什么呢?analyze不应该改变表和索引的数据文件结构才对呀?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
不会把。。。。你确定执行计划没有改变?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
就因为没变所以才费解,可能还有那些原因呢?
最初由 wenaini 发布
[B]不会把。。。。你确定执行计划没有改变? [/B]

回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
analyze后的如果用来计算cost的数据变化了,肯定会影响到cost的计算结果的。
只是有点不解执行时间也明显变慢。
analyze的方式相同吗? 还是执行时数据库的状态不一样?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
Oracle从来没有保证analyze后,SQL速度会运行得更快!
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
对了.即使执行计划相同,因为数据量变了,所以速度也会不同.
应该card-=xxxxx是不是也变大了.
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
最初由 cqhxb 发布
[B]Oracle从来没有保证analyze后,SQL速度会运行得更快! [/B]

是的
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
Sorry, 数据量没有变化,数据库状态没有变化,查询条件没有变,执行计划没有变,索引结构没有变,cost数是大幅度增加,但是响应时间不应该也大幅度增加的呀。
最初由 mistfire 发布
[B]对了.即使执行计划相同,因为数据量变了,所以速度也会不同.
应该card-=xxxxx是不是也变大了. [/B]
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行