ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 何时不用dbms_stats而用analyze的一些情况

何时不用dbms_stats而用analyze的一些情况

原创 Linux操作系统 作者:wisdomone1 时间:2013-05-21 22:47:07 0 删除 编辑

现在收集统计信息有两种方法,一是使用analyze命令,另外就是使用dbms_stats包,Oracle推荐使用dbms_stats来代替analyze。

还需要使用Analyze收集统计信息的有:

1) 行迁移/行连接 信息。可以查看v$dba_tables.chain_cnt来确定表是否有行连接/行迁移。不过使用dbms_stats无法统计这个信息,必须使用analyze table table_name compute statistics;或者analyze table table_name list chained rows into table_name;来收集。

2) Cluster table。Cluster table 必须使用analyze命令收集统计信息。

3) Validate structure。Validate structure这个命令通常用于验证索引结构信息。如果一个表上经常做delete操作,那么就需要经常对这个表上的索引进行结构验证,因为这个表上的索引可能需要重建。可以使用analyze index index_name validate structure offline;注意一定是要以offline(默认)方式收集统计信息,如果以online方式收集统计信息,那么就无法在index_stats中查找到刚才收集到的统计信息。Online方式收集统计信息不会对表加lock。而以offline方式收集统计信息会对表加lock,可能对性能有影响,一般是在系统处于空闲状态收集统计信息。

有可能需要rebuild的索引:可以查看index_stats.height ,如果高度大于等于4就可能需要rebuild,另外一个就是index_stats.del_lf_rows/index_stats.lf_rows>0.2也就是说有20%的数据被删除了,那么这个索引也需要rebuild。

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

请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb 工作经历: 中国普天 北京科蓝 北京云和恩墨 北京神州新桥

注册时间:2008-04-04

  • 博文量
    2189
  • 访问量
    12690160