楼主: eygle

[精华] OPTIMIZER_INDEX_COST_ADJ与成本计算

[复制链接]
论坛徽章:
117
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20版主7段
日期:2012-05-15 15:24:11ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32紫蛋头
日期:2013-03-04 17:00:07优秀写手
日期:2013-12-18 09:29:09
11#
 楼主| 发表于 2004-6-29 10:29 | 只看该作者

Re: 不错,不过

最初由 Fenng 发布
[B]只介绍这个参数而不提db_file_multiblock_read_count

有些可惜阿 [/B]


db_file_multiblock_read_count 这个参数打算单独说一说
绕在一起就复杂了

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
21
授权会员
日期:2005-10-30 17:05:332012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:36马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:36
12#
发表于 2004-7-10 18:36 | 只看该作者
最初由 biti_rainy 发布
[B]
另,其实关于这个参数,兴许大多情况下 根据 system  event  数据来调整 可能是合理的(这个没检验过,但单个例子一定是不合理的),但,这一定是可能有偏差的

因为  sql 总是复杂多样的  , 并且 sql  选取的 数据的百分比 也是变化的,还有就是  FTS 的成本跟很多因素有关,综合起来总是很困难的 [/B]


恩,eygle的例子可以让我们明白这个参数的原理。我们也知道这种方法只针对在这个表上的这条特定的sql起作用。biti_rainy提到兴许可以根据system  event  数据来调整。原文中也提到,

SELECT    EVENT,AVERAGE_WAIT
FROM    V$SYSTEM_EVENT
WHERE    EVENT LIKE ‘db file s%’;

EVENT AVERAGE_WAITS
========================= ==============
db file sequential reads .33178629
db file scattered reads 2.190087

这样就可以得到optimizer_index_cost_adj =0.33/2.1*100=15,对于这一点,我一直有点迷惑。

帮帮讲讲作者的意图好吗?

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
21
授权会员
日期:2005-10-30 17:05:332012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:36马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:36
13#
发表于 2004-7-13 19:19 | 只看该作者
这个问题有点若,但是困扰我很长时间了。
望能解惑焉。。。

使用道具 举报

回复
论坛徽章:
1
生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
14#
发表于 2004-7-15 14:03 | 只看该作者
如果没有针对CBO优化DB,定期进行分析可能有背于性能提高。
CBO在oracle眼里认为是优点多多,而且前提是要周期性地收集统计信息,于是好多情形下许多应用定期进行了统计信息的收集。
然而事实是作了统计分析后,对某些多表关联查询的性能却有了显著的下降,原本是索引扫描全变成了全表扫描,加了rule提示后速度明显加快或者删除统计信息后性能恢复正常。

于是定期收集统计信息让人产生疑惑!
看来如果不是有高人作全面的CBO优化,统计信息的定期收集还是要慎重啊!!!

使用道具 举报

回复
论坛徽章:
117
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20版主7段
日期:2012-05-15 15:24:11ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32紫蛋头
日期:2013-03-04 17:00:07优秀写手
日期:2013-12-18 09:29:09
15#
 楼主| 发表于 2004-7-15 22:27 | 只看该作者
在没有充分认识和技术准备就贸然转向CBO,显然是不明智的.

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
16#
发表于 2004-7-16 09:06 | 只看该作者
最初由 grassbell 发布
[B]

恩,eygle的例子可以让我们明白这个参数的原理。我们也知道这种方法只针对在这个表上的这条特定的sql起作用。biti_rainy提到兴许可以根据system  event  数据来调整。原文中也提到,

SELECT    EVENT,AVERAGE_WAIT
FROM    V$SYSTEM_EVENT
WHERE    EVENT LIKE ‘db file s%’;

EVENT AVERAGE_WAITS
========================= ==============
db file sequential reads .33178629
db file scattered reads 2.190087

这样就可以得到optimizer_index_cost_adj =0.33/2.1*100=15,对于这一点,我一直有点迷惑。

帮帮讲讲作者的意图好吗? [/B]



db file sequential reads   --------  往往象征(不是等价于)了索引扫描的等待

db file scattered reads  ---------  象征了FTS(不是等价于)的等待

由于 optimizer_index_cost_adj  是一个衡量索引与全表扫描之间的分界点的平衡参数,于是,假定现在 全表扫描 产生的等待  就是其  cost ,假定索引查询的等待就是其 cost 。在系统级来观察,近似地认为就是这两个事件来衡量系统的这个参数。

optimizer_index_cost_adj   =  100  的时候,观察系统的这两个等待事件,就可近似的认为:

全表扫描的代价 :  索引扫描的代价  =  db file scattered reads  : db file sequential reads


针对当前系统的事实,optimizer_index_cost_adj  本质上就是为了描述  索引扫描成本占全表扫描的成本的百分比。这个值越接近真实,则越能更好地给优化器提供选择执行计划的依据。所以正好可以参考下面的计算来设置这个值

optimizer_index_cost_adj   =  索引扫描代价 / 全表扫描代价 = file sequential reads  / db file scattered reads

注意这里的这个等式的含义和 eygle文章中  的 优化器选择的表达式并不是矛盾的,表达了不同的含义。这里是要设置的数据,使得和系统真实状况尽力一致,他那里是利用这个设置好的参数来评估  执行计划的选择

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
21
授权会员
日期:2005-10-30 17:05:332012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:36马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:36
17#
发表于 2004-7-16 10:47 | 只看该作者
恩,明朗了。最后一句解惑矣。。。

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33数据库板块每日发贴之星
日期:2009-12-15 01:01:02
18#
发表于 2004-7-16 12:15 | 只看该作者
好贴,继续深究

使用道具 举报

回复
论坛徽章:
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
19#
发表于 2009-4-12 00:58 | 只看该作者
好贴啊,被冷落了啊 ,呐喊了啊……!

使用道具 举报

回复
论坛徽章:
176
现任管理团队成员
日期:2011-05-07 01:45:08版主7段
日期:2012-07-05 02:21:03ITPUB长老会成员
日期:2015-05-07 15:11:10ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳版主
日期:2011-12-28 15:24:18ITPUB牛人
日期:2010-10-25 12:41:322010数据库技术大会纪念徽章
日期:2015-04-23 10:33:192011数据库大会纪念章
日期:2015-04-23 10:33:192012数据库大会纪念章
日期:2015-04-23 10:33:192013数据库大会纪念章
日期:2015-04-23 10:33:19
20#
发表于 2009-6-26 14:43 | 只看该作者
看看精华,能看懂的打包,不能看懂的也帮人工置顶!给别人也看看

使用道具 举报

回复

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

本版积分规则 发表回复

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