linux block的含义,Block Prefetching含义

以下是翻译Christian Antognini的《Troubleshooting Oracle Performance》P422,关于block prefetching介绍:

在正常情况下,每个基于单个数据块的处理(如rowid访问和Index range scan),如果缓存中不存在该数据块,将导致单个数据块的物理读操作。对于Nested Loop关联来说,特别是进行多行处理,单数据块物理读将变得没有效率。事实上,通常NL关联通过多个单数据块物理读来访问多个连续的数据块。

为了有效提高NL关联,数据库引擎利用block prefetching,优化器目标是用一个多数据块物理读来替代多个单数据块物理读,多数据块物理读不单单针对表,也针对索引。

查看访问路径我们无法获知数据库引擎是否使用prefetching,只能从server进程执行物理读来窥探,特别是等待事件中相关信息:

1、db file senquential read 事件,对应是单数据块物理读,如果发生该等待事件,表示block prefetching没有被使用,或者是所需的数据块已经在缓存中。

2、db file scattered read事件,对应是多数据块物理读,因此,如果发生ROWID访问或Index Range Scan,意味着blcok prefetching被使用。

非常重要一点是,我们无法控制block prefetching的使用,只能是数据库引擎决定是否使用block prefetching。

注: 参看metalink 406966.1介绍,table prefetching 可能导致错误的结果。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/354732/viewspace-619397/,如需转载,请注明出处,否则将追究法律责任。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值