统计信息收集的作用?
统计信息为了让oracle 的SQL优化器了解数据信息 包括数据量的多少和分布,以便SQL优化器 CBO能够获得较佳的执行计划,较好的执行计划 意味着oracle对于不同的SQL使用合理的访问路径和Join方式,简而言之是得到更好的性能。
优化器统计范围:
表统计; --行数,块数,行平均长度;all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN;
列统计; --列中唯一值的数量(NDV),NULL值的数量,数据分布;
--DBA_TAB_COLUMNS:NUM_DISTINCT,NUM_NULLS,HISTOGRAM;
索引统计;--叶块数量,等级,聚簇因子;
--DBA_INDEXES:LEAF_BLOCKS,CLUSTERING_FACTOR,BLEVEL;
系统统计;--I/O性能与使用率;
--CPU性能与使用率;
--存储在aux_stats$中,需要使用dbms_stats收集,I/O统计在X$KCFIO中;
analyze(非分区表)
analyze table 一般可以指定分析: 表ÿ