您的位置:首页 > 其它

利用dbms_stats收集统计信息(待续)

2013-11-04 22:50 405 查看
统计收集的权限

普通用户必须有execute_catalog_role权限

grant execute_catalog_role to hr;

grant connect,resource,analyze any to hr;

统计收集的时间考虑

当参数STATISTICS_LEVEL设置为TYPICAL或者ALL,系统会在夜间自动收集统计信息。

表统计;

统计表的行数,块数,行平均长度;

统计信息保存在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中;

---------------------------------------------------------------------------------------

利用dbms_stats收集

dbms_stats能良好地估计统计数据(尤其是针对较大的分区表),并能获得更好的统计结果,最终制定出速度更快的SQL执行计划。

这个包的下面四个存储过程分别收集index、table、schema、database的统计信息:

dbms_stats.gather_table_stats     收集表、列和索引的统计信息;

dbms_stats.gather_schema_stats    收集SCHEMA下所有对象的统计信息;

dbms_stats.gather_index_stats     收集索引的统计信息;

dbms_stats.gather_system_stats    收集系统统计信息

dbms_stats.GATHER_DICTIONARY_STATS: 所有字典对象的统计;

DBMS_STATS.GATHER_DICTIONARY_STATS 其收集所有系统模式的统计

dbms_stats.delete_table_stats     删除表的统计信息

dbms_stats.delete_index_stats     删除索引的统计信息

dbms_stats.export_table_stats     输出表的统计信息

dbms_stats.create_state_table

dbms_stats.set_table_stats     设置表的统计

dbms_stats.auto_sample_size
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: