经验分享:如何判断数据库的内存配置够不够用

给数据库分配的内存,在topas当中看,是属于计算内存,从内存栈分类上来说是共享内存。如果给数据库分配XX GB内存,那么数据库使用的内存不含超过这个限制。但至于这些内存够不够用,就要看业务系统是否能够接受当前的响应时间等性能指标,能接受就是内存够用。

如果想知道扩大内存后能起到什么效果(SQL的响应时间方面),最好的方法还是扩大内存实测一把。

另外,也可以打出awr报告,查看SGA advisor,PGA advisor等分析建议,awr会给出,当内存配置达到多少时,物理IO能够减少多少。这样能有一个大致的判断。


举几个内存大小对业务响应时间影响的例子。

相同的应用、相同的业务压力(TPS)、相同的CPU等硬件资源的配置,仅仅是内存有差异 64G VS 128G。对比sql查询的响应时间指标(单位:秒)(Oracle内部的SGA PGA等内存参数采用自动分配策略)


不采用In-Memory特性       64G       128G

批量查询1                        4.2           1.4

批量查询2                        0.53         0.18

批量查询3                        12.3        2.6


采用In-Memory特性       64G            128G

批量查询1                        0.185         0.08

批量查询2                        0.329         0.146

批量查询3                        1.907         0.601

另外,在数据库总内存不变的情况下,调节各个内存区域的大小,有时会有惊喜,但一般来讲,oracle11g之后自动内存管理已成为主流,手工设定的参数可能在某个场景下比较快,但换一个场景就可能很差,不如让Oracle自动来做这件事。除非遇到自动内存管理的某个bug。

参与3

1同行回答

yulu4314yulu4314技术支持长春
谢谢分享,显示全部

谢谢分享,

收起
系统集成 · 2022-07-05
浏览447

提问者

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

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-03-06
  • 关注会员:2 人
  • 问题浏览:6704
  • 最近回答:2022-07-05
  • X社区推广