讨论:数据库内部的众多内存参数如何设置比较合理

如果对数据库的自动内存管理效果不满意,如何调整数据库的参数,比如Oracle的SGA/PGA/Data buffer/shared pool/java pool/large pool.显示全部

如果对数据库的自动内存管理效果不满意,如何调整数据库的参数,比如Oracle的SGA/PGA/Data buffer/shared pool/java pool/large pool.

收起
参与9

查看其它 1 个回答yangjianxv的回答

yangjianxvyangjianxv部门总经理成方金融科技有限公司

我的经验是这样,

1)论证:是否需要保障某个关键场景的性能,要求这个关键场景的性能指标(比如事务的响应时间)到什么程度。如果需要保障,则进行调优(人为干预内存分配策略)

2)试跑:对于oracle内部的这些内存参数,首先采用自动内存管理的方式,跑一跑“关键”场景、峰值的压力,持续比较长的一段时间。在此过程中,打一份awr报告。看看awr报告中各个内存区域的大小是否有变化。

3)猜测:如果某一项的值(比如data buffer)从开始到结束,有明显的增加,说明可能是这一项大一些有助于提高这个关键场景的性能。

4)验证:把这一项的值,人工调大,测试验证是否有效果。

需要注意的是,如果数据库上支撑多个业务场景,这些场景并没有某个关键场景需要保障,则最好不做人为的内存分配。除非碰到了oracle的自动内存管理的bug。

银行 · 2017-03-10
浏览1750

回答者

yangjianxv
部门总经理成方金融科技有限公司
擅长领域: 服务器中间件数据库

yangjianxv 最近回答过的问题

回答状态

  • 发布时间:2017-03-10
  • 关注会员:3 人
  • 回答浏览:1750
  • X社区推广