暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
Oracle11g直方图种类、收集策略与估算公式整理.docx
929
15页
17次
2021-05-30
5墨值下载
一.直方图作用:

中直方图是一种对数据分布情况进行描述的工具。它会按照某一列不同值出现
数量多少,以及出现的频率高低来绘制数据的分布情况,以便能够指导优化器根据数据的
分布做出正确的选择。数据出现倾斜时,优化器表的列中的数值分布将会影响优化器使用
索引还是执行全表扫描的决策,这种情况下如果

子句的过滤谓词列之上有一个合
理的正确的直方图,将会对优化器做出正确的选择发挥巨大的作用,使得

语句执行成
本最低,从而提升性能
二.直方图使用场合:


子句引用了列值分布存在明显偏差的列时:当这种偏差相当明显时,以至于

子句中的值将会使优化器选择不同的执行计划。这时应该使用直方图来帮助优化
器来修正执行路径。(注意:如果查询不引用该列,则创建直方图没有意义。这种错误很
常见,许多

会在偏差列上创建柱状图,即使没有任何查询引用该列。)

多表连接时,表的连接列的列值会影响

的判断。例如
假设我们有一个五项的表联
接,其结果集只有
10
行。
Oracle
将会以一种使第一个联接的结果集(集合基数)尽可能
小的方式将表联接起来。通过在中间结果集中携带更少的负载,查询将会运行得更快。为
了使中间结果最小化,优化器尝试在
SQL
执行的分析阶段评估每个结果集的集合基数。
在偏差的列上拥有直方图将会极大地帮助优化器作出正确的决策。如优化器对中间结果集
的大小作出不正确的判断,它可能会选择一种未达到最优化的表联接方法。因此向该列添
加直方图经常会向优化器提供使用最佳联接方法所需的信息。
三.直方图种类:
频率直方图(

)与高度平衡直方图(

频率直方图,也叫宽度平衡直方图。针对包含很少不同值的列,每一个

值占一个
 !
BUCKET
=
表的
NUM_DISTINCT
值。
 !
可以理解为存储数据的容器,
这个容器会按照数据的分布将数据尽量平均到各个桶里。
高度均衡直方图针对包含很多不同值的列。通常情况下当
BUCTET <
表的
NUM_DISTINCT
值得到的是
HEIGHT BALANCED
(高度平衡)直方图。
默认情况时,

的直方图会产生
"#
个存储桶。最多产生
#$
个桶。但是如果列中有
%&'&&
个不同值时,还是无法创建
()*+
(频率)直方图
,
此时需要手工建立
直方图
-
并写入数据字典方能完成
()*+
(频率)直方图的创建。
直方图统计信息
. /0/-1.0 /-1.02 3./ 0.4/
55,50*678089
直方图中存储的信息依赖于直方图的类型会有不同的解释
,
频率直方图:
1.02 
的是真实的列值
-1.0 /
的是累积
行数或者累积的频率
,
为了计一个特定列值的频率需使用与它相
1.0 /
减去它之累积
,
高度平衡直方图:
1.0 /
包含的是
 !
1.02 
是显
每一个桶中的最大值
, !&
是一个特殊
-
它的
1.02 
的是列中的最小
值。
.直方图的集策
集直方图的各种策
通常使用下面脚本来集表索引的统计信息。
BEGIN
dbms_stats.gather_table_stats(ownname =>‘table_owner’,
tabname=>’TABLE_NAME’,
estimate_percent =>’
根据表大小设置’
,
method_opt=>’for all columns size repeat’
no_invalidate=>’FALSE’
degree =>’
根据表大小,
cpu
资源和负载设置’
,
cascade=>’TRUE’)
END;
/

数用来集直方图的策

所有列集直方图

对表中所有断是直方图。
每个
列值相同或都不同没有
!
实际工作中不要使用此方式,因为并不是所有列会出现

条件列中,对没有出现在

条件中的列集直方图没有意义。

对出现在

条件中的自动判断是否收集直方图。
对于选择性比较高的列,如每个列值不同,使用

不会集直方图。
!
"
延续次收集直方图的策
"
哪些集了
直方图,现在哪些集直方图。

删除列的图统计信该列
信息重新收

对指自动集直方图,对于
列不

对指列出现在

条件自动判断
集直方图,对于其列不
of 15
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜