love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

Phone:18180207355 提供专业Oracle/MySQL/PostgreSQL数据恢复、性能优化、迁移升级、紧急救援等服务

About consistent gets from cache (fastpath)

本站文章除注明转载外,均为本站原创: 转载自love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

本文链接地址: About consistent gets from cache (fastpath)

Oracle 11g相比10g版本而言,在优化器方面有很多改进,这里不一一列举。在分析某运营商客户的CRM系统时,发现每秒的逻辑读高达100w左右,其中Consistent Gets 就占据了90w之多。由此可见,这可能存在一个巨大的优化空间。然而,当我查询statistics信息时,发现了一个奇怪的事情,如下所示:

我们可以看出,其中consistent gets from cache(fastpath)为0. 这让我一下就感觉到有点奇怪。首先针对这个统计信息,之前确实没有过多关注过,其次这里value为0,从直觉上来讲就感觉有点问题。

实际上,consistent gets from cache(pastpath)这是Oracle 11g引入的一个新特性,针对buffer pin的一个优化操作,其目的是可以降低Latch的争用,尤其是Cache buffer chains的争用。

首先我们来看下Oracle 10gR2的情况:

我们不难看出,10gR2版本中压根儿就没有这个一项统计指标。下面我继续来看下Oracle 11g版本的情况(实际上Oracle 11.1 版本就引入了该特性):

大家可以看出,统计指标有所变化。同样的SQL代码在10g和11g版本中执行,Buffer Gets差距是很大的,从10w降低到2600左右。其中11gR2版本中,consistent gets from cache(fastpath)为1400,占据整个逻辑读consistent gets(2602)的一半之多。由此可见,这是一个很大的性能改善。

经过观察分析,发现Oracle 通过隐含参数来控制该功能,参数为:_fastpin_enable,这些我的虚拟机环境的参数设置(也是默认配置):

可以看出,该参数的值还是较大的,如果将该参数改成0,那么将会是什么结果呢?

大家不难看出,当将该参数调整为0之后,consistent gets from cache(fastpath)指标变成0. 经过测试,实际上该参数只要大于1即可启用该新特性。

然而让我感觉到疑惑的地方是,客户的CRM数据库环境中,该参数默认值已经较大了,但是仍然看不到fastpath的指标信息:

欲知后事如何,请看下回分解!

Leave a Reply

You must be logged in to post a comment.