动态性能重新配置
Table A高屋建瓴地查看一些主要的事件,这些事件能够引发动态的调配重新配置。为了说明这一点,我只会把重点放在表格里所出现的SGA的主要区域里。
表A
| 内存区域 |
太小的情况 |
太大的情况 |
| 共享池 |
库缓冲区失败 |
无失败现象 |
| 数据缓冲区 |
命中率< 90% |
命中率> 95% |
| PGA集合 |
多次通过执行的次数过高 |
100%最佳执行 |
主要的重新配置触发器
很显然,库缓冲失败率过高表示共享池太小,Oracle七个数据缓冲池中任何一个的数据缓冲命中率低于90%都表示,你应该从数据库的其他区域里分一部分内存出来,重新分配给数据缓冲区。对于排序这样的操作,你要看一下程序全局区域(Program Global Area,PGA)里最佳执行的百分率,并在碰到排序操作的最佳执行率低于95%的时侯增加PGA集合目标参数的值。
针对数据缓冲区和共享池大小的规则是直接了当的,而新的pga_aggregate_target参数能够确保(对这些信息)更进一步的研究。作为一个通用的规则,当下列情况发生的时候,你就要更改pga_aggregate_target的值:
- 当v$sysstat的值――用于一次通过的估计PGA静态内存(estimated PGA memory for one-pass)超过pga_aggregate_target时,你就要增加pga_aggregate_target的值。
- 当v$sysstat的值――用于静态工作区执行-多次通过(workarea executions—multipass)大于1%时,数据库就能够从额外的内存获益。
你可能会为PGA分配过多的内存,这样在v$sysstat数据列的值――工作区执行-最佳(workarea executions—optimal)达到100%的时候,可能就要考虑减少pga_aggregate_target的值。
正如你能够看到的那样,对Oracle数据库的主动监视会是相当复杂的。由于有上百个测量值和参数需要监视和重新设置,所以对Oracle的调整将会是非常具有挑战性的。但是有了Oracle的性能测试工具和主要几个重新配置激发器的知识,你就可以开始调整好所有的事了。
|