楼主: newkid

[翻译]Jonathan Lewis 关于直方图的系列文章(33楼更新至第三篇)

[复制链接]
论坛徽章:
2
ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:20ITPUB社区12周年站庆徽章
日期:2013-10-08 15:00:34
41#
发表于 2013-12-10 22:09 | 只看该作者
好文章,感谢楼主

使用道具 举报

回复
论坛徽章:
520
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
42#
 楼主| 发表于 2013-12-10 22:54 | 只看该作者
ZALBB 发表于 2013-12-10 21:06
我对作者的说法不以为然,

1  作者的案例, 其实, 我要的话, 我最可能考虑列表分区,

列表分区比起虚拟列+索引的方法好在哪里?可能无需维护索引,但是每次修改状态都会导致行的物理移动。
2.1 确实ORACLE一直在改进硬解析这块,一个SQL只对应一种计划是很有问题的。
2.2 即使资源足够也不能浪费,取样有2.3说的问题,"定义不同的采集时间"是为了避开负载高峰呢,还是你所不认同的2.4?
2.3 倾斜数据肯定是不均匀分布的,因此取样得到的样本肯定是无法精准地反映它们的特征。有时候你恰恰就栽在这小部分的不稳定上面了。
2.4为什么不认可?作者举出的例子说明了有些数据只在某特定时间段出现,你不在这时候采集就错过了。

使用道具 举报

回复
论坛徽章:
520
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
43#
 楼主| 发表于 2013-12-11 04:59 | 只看该作者
另外,文章中确实提到了12C对直方图的改进,比如增加到2000个桶。以前就有人向我们公司推荐他们写的工具,可以把11G之下的直方图黑掉,用自己写的采集程序往字典里填写,桶数可以超过一千,我当时觉得这有点冒险,不知道会对CBO造成什么副作用,没有建议采用。

使用道具 举报

回复
论坛徽章:
314
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
44#
发表于 2013-12-11 09:18 | 只看该作者
newkid 发表于 2013-12-10 22:54
列表分区比起虚拟列+索引的方法好在哪里?可能无需维护索引,但是每次修改状态都会导致行的物理移动。
2 ...

1  没关系,物理移动,无非就是删除、插入操作,这种工作,ORACLE轻车熟路,比维护索引也多不了多少工作,而且单独作分区扫描,比之读了索引再回来读表,还要省事。
2  避开高峰,我们的系统无需7*24运行,晚上有足够的时间作采集分析。
3  若用列表分区,再加上临时动态采集,有没有数据,一目了然,就不是问题了。
4  作者说得在恰当的时间,我理解为,是担心错过时机,没采集到量少的数值的情况。
我觉得,若某个值的量少没采集到,也不会影响CBO的判断,基本上也不影响执行计划的生成,就当量少的情况来处理即可。

使用道具 举报

回复
论坛徽章:
520
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
45#
 楼主| 发表于 2013-12-11 10:14 | 只看该作者
3. 原来你说的是“采用列表分区方案,取样采集不是问题”?这可跑题了哦,老刘说的是取样采集直方图的局限性,如果你认为他说的局限性不存在,也必须在直方图的范畴内讨论,不要换成你的列表分区。另外分区方法是很有局限的,如果我有十个类似这样的状态列呢?你要按哪个来分区?

4. 你可能没认真读文章。ORACLE对于直方图中没采集到的值,估算公式是:取直方图中有采到的、出现最少的值的行数,将其除以2。
如果你错过了采集时间,采集到到完全可能是常见值,比如是 50:50 的两个值。
这样,CBO碰到一个“罕见”值的谓词,它会认为这个值的行数=50%/2 = 25%
而这个行数可能会差得很远,罕见的值往往就那么几行。

使用道具 举报

回复
论坛徽章:
3
ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14ITPUB社区12周年站庆徽章
日期:2013-08-07 16:39:24ITPUB社区12周年站庆徽章
日期:2013-10-08 14:53:15
46#
发表于 2013-12-11 13:51 | 只看该作者
mark一记

使用道具 举报

回复
论坛徽章:
58
生肖徽章2007版:马
日期:2009-11-06 23:12:33授权会员
日期:2013-01-10 14:38:592013年新春福章
日期:2013-02-25 14:51:24马自达
日期:2013-08-07 10:54:45红旗
日期:2013-08-09 13:48:48劳斯莱斯
日期:2013-09-12 15:56:37萤石
日期:2013-10-31 08:44:19优秀写手
日期:2013-12-18 09:29:13Jeep
日期:2014-01-14 10:53:432014年新春福章
日期:2014-02-18 16:43:09
47#
发表于 2013-12-18 16:14 | 只看该作者
非常好!

使用道具 举报

回复
论坛徽章:
0
48#
发表于 2014-1-24 15:04 | 只看该作者
你好,你那个直方图帖子,有个地方是不是作者写错了,高度均衡直方图那块
给出的公式是 非频繁的行数/非频繁的桶数
非频繁值基数 = 12/8 = 1.5, 进位为2。非频繁数桶数不是8吧?明明是3吧

使用道具 举报

回复
论坛徽章:
520
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
49#
 楼主| 发表于 2014-1-24 23:06 | 只看该作者
oracledbacrs 发表于 2014-1-24 15:04
你好,你那个直方图帖子,有个地方是不是作者写错了,高度均衡直方图那块
给出的公式是 非频繁的行数/非频 ...

你看得真仔细,等我写个邮件问一下。

使用道具 举报

回复
论坛徽章:
0
50#
发表于 2014-1-25 07:59 | 只看该作者
newkid 发表于 2014-1-24 23:06
你看得真仔细,等我写个邮件问一下。

谢谢了,确实我比较较真

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表