首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

analyze跟dbms_stats函数的区别

2012-11-15 
analyze和dbms_stats函数的区别analyze和dbms_stats函数都是收集一些统计信息,如下:??SQL exec dbms_stat

analyze和dbms_stats函数的区别

analyze和dbms_stats函数都是收集一些统计信息,如下:

?

?
SQL> exec dbms_stats.gather_table_stats(user,'T');

?

得到的结果和analyze相同。

?

一般对于常规的使用(不考虑分区表,外部表等特性),使用Analyze可以帮助我们得到我们需要的数据。细微的区别如下:

一、对于分区表,建议使用DBMS_STATS,而不是使用Analyze语句

    可以并行进行,对多个用户,多个Table可以得到整个分区表的数据和单个分区的数据。可以在不同级别上Compute Statistics:单个分区,子分区,全表,所有分区可以倒出统计信息可以用户自动收集统计信息

二、DBMS_STATS的缺点

    不能Validate Structure不能收集CHAINED ROWS, 不能收集CLUSTER TABLE的信息,这两个仍旧需要使用Analyze语句。DBMS_STATS 默认不对索引进行Analyze,因为默认Cascade是False,需要手工指定为True

三、对于oracle 9版本后面的External Table,Analyze不能使用,只能使用DBMS_STATS来收集信息。

?

?

热点排行