Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

1

好友

3

主题
1#
发表于 2013-1-9 11:18:05 | 查看: 3536| 回复: 2
10.2.0.4 两节点RAC,在节点1上跑一个存储过程,或者跑一个SQL,这个语句运行很长时间不结束,观察一下等待事件,可以发现一直在gc等待中。

这时候可以选择把这个会话kill掉,然后重新跑一次,这时候很快就可以跑过去了(执行计划是一样的)。

在我们的系统中,经常能碰到这样的问题,为什么会这样呢?
3#
发表于 2013-1-9 20:54:01
"这时候可以选择把这个会话kill掉,然后重新跑一次,这时候很快就可以跑过去了(执行计划是一样的)。

在我们的系统中,经常能碰到这样的问题,为什么会这样呢?"

你看到的现象是 第一次执行慢, 而第二次执行快

可能的原因包括:

1. buffer access from disk to cache
2. gc buffer 在第一次查询后被transfer到local node
3. parse cursor 缓存

等等

如果不具体分析原因和现象,那么你永远会觉得好像 xx 后比 xx前快 ,这种诡异的现象。

如果你分析了原因,那么就会知道这都是有原因的。

回复 只看该作者 道具 举报

2#
发表于 2013-1-9 17:31:42
相同的操作在RAC的多个节点上同时执行,gc等待严重是慢的主要原因。

回复 只看该作者 道具 举报

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

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-16 06:22 , Processed in 0.046801 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569