ITPub博客

首页 > 数据库 > 数据库开发技术 > DBMS_STATS和ANALYZE在搜集statistics时的一些差别!

DBMS_STATS和ANALYZE在搜集statistics时的一些差别!

原创 数据库开发技术 作者:warehouse 时间:2008-04-16 10:29:06 0 删除 编辑

doc上的原话,随手记录一下。

[@more@]

Oracle Corporation strongly recommends that you use the DBMS_STATS package rather than ANALYZE to collect optimizer statistics. That package lets you collect statistics in parallel, collect global statistics for partitioned objects, and fine tune your statistics collection in other ways. Further, the cost-based optimizer will eventually use only statistics that have been collected by DBMS_STATS. See Oracle9i Supplied PL/SQL Packages and Types Reference for more information on this package.

However, you must use the ANALYZE statement rather than DBMS_STATS for statistics collection not related to the cost-based optimizer, such as:

  • To use the VALIDATE or LIST CHAINED ROWS clauses
  • To collect information on freelist blocks

DBMS_STATS gathers only statistics needed for cost-based optimization; it does not gather other statistics. For example, the table statistics gathered by DBMS_STATS include the number of rows, number of blocks currently containing data, and average row length, but not the number of chained rows, average free space, or number of unused data blocks.

其实差别远不止这些,还有如:

SQL> analyze cluster c_cobj# compute statistics;

簇已分析。
analyze可以分析cluster而dbms_stat应该不可以

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/19602/viewspace-1002598/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-07

  • 博文量
    717
  • 访问量
    5366295