免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3371 | 回复: 2

现在反而有点不理解OPTIMIZER_INDEX_COST_ADJ了 [复制链接]

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:58:11
发表于 2011-07-10 14:35 |显示全部楼层
这个参数,在以前吧里的老帖子里面侃了很多。我本人维护的系统(9i)就是默认值100,感觉问题不大,我看了下业务的数据库源码,对大表返回小集都是直接用index hint强制,别的让CBO自己去选。

按照我以前的观点,这个值要改是在8i的时候,因为8i的算法不科学,它不区分单块读和多块读,而且只是简单用读取次数来计算cost。比如走索引的cost就是index块读的次数+table block读的次数。
FTS就是多块读的次数,但是单块读和多块读的io wait不同,所以要搞这么个cost adj来均衡,网上都是建议在v$system_event里面去分散读和序列读的时间比作为cost adj,这很好理解,就是因为8i对index的计算不公平,index读100次,可以就相当于FTS读50次,这个时候就要把cost adj设成50。

我的问题是:现在9i、10g的算法我感觉很科学了啊,怎么还有那么多人建议用上面那个分散读序列读的比值去设这个值呢?
9i算法:Cost = #SRds +
       #MRds * mreadtim / sreadtim +           //IO_COST
       #CPUCycles / (cpuspeed * sreadtim)     //CPU_COST

这里面对单块读时间和多块读的时间已经做了区分,再去根据分散读序列读的比值搞一个cost adj干什么呢?

我们假设costs的算法完全科学,完全反应执行效率,搞个小于100的cost adj,就是说明明index效率不如FTS也要去用index,这是何必呢?除非说那costs算法还是有问题。

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:58:11
发表于 2011-07-10 15:02 |显示全部楼层
还有很多朋友说根据经验,OLTP系统直接设成25。
我打个比方,两个业务人员,同样拿了1000万的单子,但是主管说,小王的业绩可以算1000万,但是小张的要乘以25%,你的只能算250万,这就怪了,小张的业绩难道有水分么?

再回到索引话题,就是说如果索引算出来的cost是300,FTS是100,因为有25%参数,CBO还得选择走索引,因为别人只有300*25%=75的cost嘛,这跟上面业务人员的例子一样不太好理解,难道index的cost算法还是有很大问题?明明是300,也让CBO去走索引,有什么好处么,如果有好处,为何不在对index的cost算法里面进行修订呢。

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
发表于 2011-07-10 21:38 |显示全部楼层
一直在用数据库,却一直没有对概念的东西很了解。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP