楼主: zhu47172310

RAC中的global cache cr request等待事件 过长

[复制链接]
论坛徽章:
0
11#
 楼主| 发表于 2006-4-18 16:52 | 只看该作者
过了两天,放弃在网上等待。有空我自己试试gc_files_to_locks 。

使用道具 举报

回复
论坛徽章:
47
蒙奇·D·路飞
日期:2017-03-27 08:04:23马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11一汽
日期:2013-09-01 20:46:27复活蛋
日期:2013-03-13 07:55:232013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:322012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20
12#
发表于 2006-4-18 21:32 | 只看该作者
What are you waiting for? Did you try

alter system set "_fairness_threshold" = 3

In case you don't realize, that does not require bouncing the database.

Yong Huang

使用道具 举报

回复
论坛徽章:
0
13#
 楼主| 发表于 2006-4-19 09:19 | 只看该作者
Yong Huang,你说的这个参数_fairness_threshold我不知道是干什么的。没敢试。在网上找了一下。也没找到相关的资料。

使用道具 举报

回复
论坛徽章:
0
14#
 楼主| 发表于 2006-4-19 09:50 | 只看该作者
试了alter system set "_fairness_threshold" = 3,结果还是一样的。不知道alter system set "_fairness_threshold" = 0会怎样。给这个参数解释一下。

使用道具 举报

回复
论坛徽章:
47
蒙奇·D·路飞
日期:2017-03-27 08:04:23马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11一汽
日期:2013-09-01 20:46:27复活蛋
日期:2013-03-13 07:55:232013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:322012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20
15#
发表于 2006-4-19 11:19 | 只看该作者
最初由 zhu47172310 发布
[B]Yong Huang,你说的这个参数_fairness_threshold我不知道是干什么的。没敢试。在网上找了一下。也没找到相关的资料。 [/B]


Metalink Bug:2691049 mentions this parameter. K Gopal talks about it at

http://www.freelists.org/dhs/arc ... -2005/msg00021.html

and of course in his Oracle Wait Interface book. Basically, it means if instance A needs to serve a specific block (buffer) to instance B a couple of times for consistent read, after a few times (_fairness_threshold), it gives up and says, "I won't master or own this block any more. I'm giving ownership of this block to you, instance B".

I suggest you open a Tar with Oracle. Don't forget to tell us what you eventually do.

Yong Huang

使用道具 举报

回复
论坛徽章:
0
16#
 楼主| 发表于 2006-4-19 11:53 | 只看该作者
Yong Huang,如果我把这个_fairness_threshold设为0。是否意味着不再尝试读另一个实例的buffer数据??请以你的理解用中文回答我,英文我怕自己理解不正确。

使用道具 举报

回复
论坛徽章:
0
17#
 楼主| 发表于 2006-4-19 12:02 | 只看该作者
目前我的做法是把有全表扫描的表放到了keep池中,因为该表不是很大,实际操作中可以做到。然后写了一个oracle作业,作业的功能是发现有wait事件大于300,就执行Alter system flush buffer_cache。这种方法没有在根本上解决问题,只是保障了当前状态下数据库是性能是可接受的。但是执行一些其他的sql,速度还是有点问题。

使用道具 举报

回复
论坛徽章:
0
18#
发表于 2006-4-19 18:15 | 只看该作者
人还了解到有一个方法:
设置参数gc_files_to_locks 可以关闭Cache fusion
因为要关数据库,而且不是很明白如果设置这个参数出错
会不会对数据库有不好的影响。所以暂时没有试。

如果设置了这个关闭了CACHE FUSION,你数据库操作会更慢。


我估计你全表扫描慢,是存在全表扫描里面的记录有跨越了多个块。

在RAC中,如果A用户访问块A,B,而此时用户B对B块进行修改,那么A用户就必须等B用户的修改操作完成,A用户才能得到结果。

当然这个事件还和节点之间的连接速度,热点数据快竞争,LMS进程不够多等有关系,每一个都会导致这个事件等待事件长

使用道具 举报

回复
论坛徽章:
0
19#
 楼主| 发表于 2006-4-20 09:46 | 只看该作者
“表扫描里面的记录有跨越了多个块”,我想不是这个问题,我可以肯定。
因为我的rac还有一个standby数据库,我用readonly打开这个数据库。这个时候
同样全表扫描在rac数据库中查询需要28.172秒,而在standby数据库中只需要13.984秒。
standby数据库是单机rac,只开启了一个实例,数据库用的是Hp服务器自带的磁盘;
rac数据库用的是EMC的存储。
我想不可能存储EMC还慢过HP服务器的磁盘吧
不过存储不是我经手配置和测试的,全部是EMC工程师做的,当系统急着要上,自己
没有测试过速度。

使用道具 举报

回复
论坛徽章:
0
20#
 楼主| 发表于 2006-4-20 10:00 | 只看该作者
需要多说明一下的是两台RAC和一台STANDBY机器用提都是HP 的DL580。
存储用的是EMC的CX700,数据库版本是oracle 9206。分配给oracle的内存是一样的。
下面这条语句
select * from f_decl_details where irdex_no=''
返回的结果都为0行,对f_decl_details进行全表扫描。
在RAC上第一次执行速度是28.172秒,以后每次在平均在5秒左右,
在standby上第一次执行速度是13.984秒,以后每次在平均在2秒左右。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表