不能抛弃的analyze

本文基于Oracle10g

现在收集统计信息有两种方法,一是使用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 tableCluster table 必须使用analyze命令收集统计信息。

3)      Validate structureValidate 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

你可能感兴趣的:(oracle,table,delete,oracle10g,statistics,structure)