【求助】如何解决11.2.0.1的Cursor高version counts问题?

[复制链接]
查看11 | 回复9 | 2008-1-2 17:35:53 | 显示全部楼层 |阅读模式
本帖最后由 lxz3000 于 2011-12-12 12:52 编辑
我们的11.2.0.1的库,操作系统Redhat 5 Enterprise,总是出现某些SQL的Cursors的Version Count非常高,甚至到1w++,有几次出现Cusor: Mutex S等待事件,
造成系统瘫痪,现在就是经常执行alter system flush shared_pool来定时清理,有没有更好的办法?除了升级。
cursor_sharing = force

回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
看看AWR~有可能是BUG~如果是bug的话看看能不能通过调整参数解决~有些BUG似乎只能升级
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
我们的是OLTP系统,听说可以取消HISTOGRAM来解决,可以吗?
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
lxz3000 发表于 2011-12-12 15:04
我们的是OLTP系统,听说可以取消HISTOGRAM来解决,可以吗?

那种就是固定执行计划来减少version count
但是关键是你到底是什么导致的~如果是BUG的话可能不行
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
lxz3000 发表于 2011-12-12 15:04
我们的是OLTP系统,听说可以取消HISTOGRAM来解决,可以吗?

可以,实际上直方图不需要这么多。
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
不过可能这个是bug。
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
case hard coding
try setting cursor_sharing=FORCE
case binding variable
try disable 11g Adaptive Cursor Sharing Feature
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
maclean 发表于 2011-12-12 18:55
case hard coding
try setting cursor_sharing=FORCE
case binding variable

cursor_sharing=FORCE已经这么设置了
出现高version_count的SQL都来自存储过程
如何禁用ACS?有没有什么影响?
谢谢!
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
参考了这篇文章 http://space.itpub.net/15415488/viewspace-621535,做了下面的调整,关闭11G新特性ACS,
ALTER SYSTEM SET _optimizer_extended_cursor_sharing_rel='NONE' SCOPE=BOTH;
ALTER SYSTEM SET _optimizer_extended_cursor_sharing='NONE' SCOPE=BOTH;
ALTER SYSTEM SET _optimizer_adaptive_cursor_sharing=FALSE SCOPE=BOTH;
好像确实有效果,12点重启后,现在的child cursors最多才5。
回复

使用道具 举报

千问 | 2008-1-2 17:35:53 | 显示全部楼层
还是有问题,到下班的时候发现又一个Cursor出现了很高的Version Count !!!!! BING_LENGTH_UPGRADEABLE = 'Y'
郁闷!!! 难道只有升级一条路可以走了吗?
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行