在CBO(基于代价的优化器模式)条件下,SQL语句的执行计划由统计信息来决定,若没有统计信息则会采取动态采样的方式决定执行计划!可以说统计信息关乎sql的执行计
在CBO(基于代价的优化器模式)条件下,SQL语句的执行计划由统计信息来决定,若没有统计信息则会采取动态采样的方式决定执行计划!可以说统计信息关乎sql的执行计划是否正确,属于sql执行的指导思想,oracle的初始化参数statistics_level控制收集统计信息的级别,有三个参数值:
BASIC :收集基本的统计信息
TYPICAL:收集大部分统计信息(数据库的默认设置)
ALL:收集全部统计信息
统计信息包含:
行统计信息(user_tables):行数(NUM_ROWS),块数(BLOCKS),行平均长度(AVG_ROW_LEN);
列统计信息(user_tab_columns):列中唯一值的数量(NUM_DISTINCT),NULL值的数量(NUM_NULLS),数据分布(HISTOGRAM);
索引统计(user_index):--叶块数量(LEAF_BLOCKS),等级(BLEVEL),聚簇因子(CLUSTERING_FACTOR);
统计信息的收集时间由时间窗口来调度!
一:10g关闭自动收集统计信息任务
二:11g关闭自动收集统计信息任务
查询
三:手动收集统计信息,采样10%,免备案空间,香港服务器,并行度为8,METHOD_OPT选项代表收集index列分布情况,并生成直方图
四:查看表或索引的统计信息
五:导出统计信息
六:删除统计信息
七:导入统计信息
八:异机导入,首先需要将HR_STAT_BAK表通过expdp/impdp方式导入到其他oracle服务器上
九:锁定与解锁统计信息
本文出自 “斩月” 博客,谢绝转载!
,香港空间