ORACLE统计信息

什么是统计信息
统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息。比如,表的行数,块数,平均每行的大小,索引的leaf blocks,索引字段的行数,不同值的大小等,都属于统计信息。CBO正是根据这些统计信息数据,计算出不同访问路径下,不同join 方式下,各种计划的成本, 最后选择出成本最小的计划
统计信息是存放在数据字段表中的,如tab$。一般我们从数据字段视图中察看统计信息状况,如DBA_TABLES,DBA_INDEXES,DBA_TAB_COL_STATISTICS, DBA_TAB_HISTOGRAMS 等。
列举下DBA_TABLES,DBA_INDEXES 视图中表示统计信息的一些字段。这些字段只有搜集过统计信息之后才有值,否则是空的。这些字段中last_analyzed 字段表示上次统计信息搜集的时间,大家可以根据这个字段,快速的了解最近一次统计信息搜集的时间。

统计信息包括下面几类:

表统计:包括记录数、block数和记录平均长度。

列统计:列中不同值的数量(NVD)、空值的数量和数据分布(HISTOGRAM)。

索引统计: 索引叶块的数量、索引的层数和聚集因子(CLUSTERING FACTOR)

系统统计:I/O性能和利用率和CPU性能和利用率。



生成统计信息:

统计信息生成技术包括三种:

基于数据采样的估计方式;

精确计算方式;

用户自定义的统计信息收集方式;

其中采用估算方式可以指定总记录数的估算百分比或者总块数的估算百分比。

分区表的统计信息分为几级:分区表的整体信息、分区的统计信息和子分区的统计信息。

最常用的收集统计信息的方式包括:DBMS_STATS包和ANALYZE语句,Oracle推荐使用DBMS_STATS包来收集统计信息。

DBMS_STATS包中用于收集统计信息的过程包括:

dbms_stats.gather_table_stats  收集表、列和索引的统计信息;
dbms_stats.gather_schema_stats   收集SCHEMA下所有对象的统计信息;
dbms_stats.gather_index_stats  收集索引的统计信息;
dbms_stats.gather_system_stats  收集系统统计信息。
dbms_stats.delete_table_stats  删除表的统计信息
dbms_stats.export_table_stats 输出表的统计信息
dbms_stats.create_state_table
dbms_stats.set_table_stats 设置 表的统计
dbms_stats.auto_sample_size
dbms_stats.gather_database_stats:收集数据库中所有对象的统计信息;

Oracle根据下列条件来决定使用哪些索引:

1.索引中的记录数;

2.索引中不同键值的数量;

3.索引的层数;

4.索引中的叶块数;

5.聚集因子;

6.每个键值平均叶块数;

如果两个索引的选择性、查询代价和集势都相同,那么优化器会根据索引名称的字母顺序选。


--查看表的stats
select * from user_tab_statistics where table_name = 'STUDENT' ;

字段说明:
NUM_ROWS      记录行数  
BLOCKS        高水位线以下的数据块数
EMPTY_BLOCKS  高水位线以上数据块数,dbms_stat不统计.
AVG_SPACE     平均空闲空间,不统计
CHAIN_CNT     行迁移行数,不统计
AVG_ROW_LEN   行平均长度

--查看列的stats
select * from user_tab_col_statistics where table_name = 'STUDENT' ;

统计信息说明
column_name  字段名
num_distinct 唯一值数量
low_value    该列最小值
high_value   该列最大值
density      表示该列数据的重复率,0到1的小数,越接近0表示重复率越低。
num_nulls    该列null值的数量
avg_col_len  列平均长度,以字节为单位
histogram    是否有直方图统计信息,none:没有,frequency:频率直方图,height balanced     等高直方图。
num_buckets  直方图桶数

--查看索引的stats
select * from user_ind_statistics where table_name = 'STUDENT' ;

参考:http://blog.csdn.net/accpsz/article/details/5155614

猜你喜欢

转载自forlan.iteye.com/blog/2081848