Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

164

积分

0

好友

16

主题
1#
发表于 2012-3-8 09:47:35 | 查看: 3277| 回复: 1
请教
dbms_stats.gather_table_stats(ownname=> 'test', tabname=> 'TEST1', partname=> NULL);

analyze table test1 compute statistics;
这二个是什么区别?
当CHAIN_CNT发生变化时在10g client的em中通过界面分析则会生成上面dbms语句,直接拷入sqlplus中也可执行,
但如果这表已有分析再进行分析后CHAIN_CNT字段值不会变,而LAST_ANALYZED时间则会更新,这时需要先删除这分析再分析才会改变,而通过analyze这不管有没分析CHAIN_CNT则直接为最终结果。
现求上面二个语句的区别?
2#
发表于 2012-3-8 14:50:09
analyze is slated to do this and this alone at some time in the future.  analyze is destined to be
the “validate” thing — analyze validate structure, analyze list chained rows, etc.

dbms_stats will stick with stats and stats only.

http://asktom.oracle.com/pls/ask ... ION_ID:735625536552



因为Oracle Development 开发部门已经给予 Analyze 命令较为精确地功能定位了,  所以其最主要的2个功能validate structure和list chained rows目前和将来都不会被植入到DBMS_STATS包当中。

注意因为DBMS_STATS仅仅收集对CBO有用的统计信息,所以一些空间使用情况信息和使用FreeList管理的信息都不会被收集,这些信息包括:



If statistics unrelated to the cost based optimizer are required, then these
must still be collected using the the ANALYZE command. These statistics include:

Space Usage information :

EMPTY_BLOCKS,
AVG_SPACE,
CHAIN_CNT

Information on freelist blocks

AVG_SPACE_FREELIST_BLOCKS,
NUM_FREELIST_BLOCKS



因为以上信息对于CBO计算成本并没有帮助,所以DBMS_STATS也就无意也无法收集它们,但是Analyze命令还是可以做到收集以上这些信息。

http://www.oracledatabase12g.com ... analyze-can-do.html

回复 只看该作者 道具 举报

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

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-23 23:37 , Processed in 0.046217 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569