- 最后登录
- 2022-10-11
- 在线时间
- 137 小时
- 威望
- 163
- 金钱
- 1477
- 注册时间
- 2012-1-10
- 阅读权限
- 50
- 帖子
- 217
- 精华
- 1
- 积分
- 163
- UID
- 158
|
3#
发表于 2013-6-9 15:04:23
感觉这是一个已经被调优过的数据库,
楼主能否补充一下一些信息,比如这个是系统是什么样类型的,主要这个时段会做些什么业务,是否会用到临时表等。
个人分析如下:
1. 众所周知这个系统问题出在latch: library cache和latch: shared pool 争用上,占系统总体等待时间的比例30%。
每次等待时长 高达577ms。平均每个实务等待这些闩锁的次数有0.23个。换句话说 ,在一个实务中,仅仅等待library cache和shared pool闩锁就超过了577毫秒。
2. 系统有一定量的硬解析,每秒12.41个,从Parse CPU to Parse Elapsd %:=21.37%来看,解析时大量时间花费在等待上,也就是可能在等待上面提到的两个等待事件。
3.从Dictionary Cache Stats 可以看到 有一定的直方图字典缓存的争用 dc_histogram_data,dc_histogram_defs
处理建议:
1. 找出硬解析的sql ,处理硬解析,处理直方图的争用的情况
2. 发现optimizer_mode=choose ,不知道为何进行修改。--当然是否要修改为别的,我没有什么建议。
3.个人认为最主要的问题出在 shared_pool_SIZE 不足,或者说不够大引起的。
一方面:由于这个系统没有配置了sga的自动管理,而是手动管理,将shared_pool设为6G,db_cache设为18G,而sga_max_size=36G. 所以我们看不到oracle中的shared_pool_size扩缩的现象。
评估Operating System Statistics中NUM_CPUS,load ,idle time,发现该系统的cpu还是有足够的空闲。
所以个人建议,加大shared_pool到12G,来看看。-->也许不用加这么大,那就少加一点先试试看
评估一下,每秒的事务是否会有一个上升。
|
|