您的位置:首页 > 运维架构

optimizer_index_caching和optimizer_index_cost_adj

2013-04-10 19:37 459 查看
optimizer_index_caching和optimizer_index_cost_adj的意义

optimizer_index_caching

有些(大多数)索引位于缓冲区高速缓存中,可以使用optimizer_index_caching参数告诉oracle能够在缓冲区中找到索引块的平均百分比。默认值0认为缓冲区没有索引块。100认为全在缓冲区中。可能希望用接近于高速缓存命中率的某个值为开始调整,调整范围65-95。

optimizer_index_cost_adj

这个初始化参数代表一个百分比,取值范围在1到10000之间.该参数表示索引扫描和全表扫描成本的比较,缺省值100表示索引扫描成本等价转换于全表扫描成本。
用来告诉oracle高速缓存多少表数据的参数。这个数越小,表访问单个块(索引扫描)的成本就越低;理解它的办法是:想象这个数反映执行多块IO(全表扫描)的成本与执行单个IO(索引扫描)的成本。默认为100,则多块IO与单块IO成本相同。设为50优化程序认为访问单块IO的成本为多块IO的一半。

小结:
这两个参数的设置不会使计划执行得更快,它只是影响选择哪个计划。
一般而言,默认的参数值很可能对系统不合适
对多数系统而言考虑如下极端情况:
optimizer_index_caching = 0 optimizer_index_cost_adj = 100 默认值,一般时候数据仓库报表系统。

optimizer_index_caching = 90 optimizer_index_cost_adj = 25 一般时候事务处理/OLTP系统。

Note: 通过 select event,average_wait from v$system_event where event like 'db file s%'
语句查询顺序读和离散读的等待值,并用 sequential reads / scattered reads 的比来作为 optimizer_index_cost_adj 的设置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: