转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/37840583 2014.7.23晚20:30 oracle support组猫大师分享《通过一个案例彻底读懂10046 trace--字节级深入破解》 如需了解更多课程请登录网站http://www.jianfengedu.com/discuz/detail/id/56
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/37840583
2014.7.23晚20:30 oracle support组猫大师分享《通过一个案例彻底读懂10046 trace--字节级深入破解》
如需了解更多课程请登录网站http://www.jianfengedu.com/discuz/detail/id/56
国内首创成就qtune的顶级高手之课
sql优化课程系列i cbo内部算法
--》能从头听到尾, 真的能成qtune高手
我只提一个问题, 有谁能把> 的选择率真的搞清楚? dis上都没有讲清楚。
+++我给你看个东西
--------------------------------------------------------------------------| id | operation | name | rows | bytes | cost (%cpu)| time |--------------------------------------------------------------------------| 0 | select statement | | 1 | 10 | 349 (1)| 00:00:05 ||* 1 | table access full| t1 | 1 | 10 | 349 (1)| 00:00:05 |--------------------------------------------------------------------------predicate information (identified by operation id):--------------------------------------------------- 1 - filter(object_name='00440')table name:t1column name:object_namenum_rows:87417num distinct:48128num_nulls:797density:.0000115446779034865histogram:height balancedhigh_value:4435(d5) -- internal value:354151154089362000000000000000000000low_value:3030343432(00442) -- internal value:25020794088876500000000000000000000000400 internal value : 250207940886347000000000000000000000endpoint_value endpoint_number bucket_count-------------------- --------------- ------------46641 40 147796 41 1a1 49 8b2 58 9c3 66 8d5 75 9
density = (bucket_total - buckets_all_popular_value)/
sel = .00001136 * (87417 - 797)/87417 * (1 - ((250207940888765000000000000000000000 - 250207940886347000000000000000000000)/(354151154089362000000000000000000000 - 250207940888765000000000000000000000)))
这是:col=val and val2*low_value - high_value
high_value:4435(d5) -- internal value:354151154089362000000000000000000000
00400 internal value : 250207940886347000000000000000000000
这三个数字是怎么得出来的?
d5在dba_tab_columns里,存成这样的:4435, 其实oracle内部计算用的值是:354151154089362000000000000000000000
与其实, 他在告诉你怎么cost,不如说,他是想告诉你, 怎么研究oracle的算法。
其实就是告诉你, 怎么猜。 里面也有错的。
比如cardinality他都是用ceil()一下, 其实,oracle多数情况下用round
大家是否面对生产上很慢的sql束手无策,经常碰到类似下面的一些问题,这里我只是举例。。。
dsi之 系列1 cbo内部算法--2014.8.5启动(14课时,7天课),¥499/每人
选择率,基数计算公式
1. 重要的概念
join
5. hash join and sort merge join
———————————————最近分享活动视频caibird2005分享主题《数据仓库环境的表拆分、分区表、并行计算 》