我们的数据库在一些非常重要的用例中速度很慢。我追踪到了一个问题,一些查询执行全文搜索,然后对许多记录(db文件,顺序读取)进行单行访问。一旦数据在内存中,这些查询就会变得非常快。
我们开发人员的解决方案是将最热门的表放入内存中。
我们目前的SGA_MAX是20 GB,SGA_TARGET是14 GB。ADDM和AWR推荐25 SGA的SGA空间。
我们的基础设施团队现在将我们的数据库升级到40 to,然而,数据库管理软件认为,大量的ram可能会破坏oracle的性能。
这是真的吗?我无法想象,如果再增加20 go的RAM,数据库就会变慢。
版本: Oracle数据库11g企业版发行版11.2.0.3.0-64位生产
发布于 2015-04-01 12:44:30
是和不。如果配置不当,过多的RAM会导致性能下降。
例如,在Linux上,如果没有配置HugePages,使用大量的SGA和许多数据库会话,那么页面将容纳大量内存。一旦到了客户端,数据库服务器就安装了512 GB内存。他们使用150 GB的SGA进行了大约4000到5000次数据库会话,这导致了360 GB的可分页大小--因此服务器耗尽了内存,这导致挂起和重新启动。启用HugePages后,可分页的大小减少到1,5GB(从360 GB!!),节省并允许使用超过350 GB的额外内存。
另一种情况是,客户使用Solaris x86-64 11.1,与上述情况相反。数据库使用了1GB的页面和300 GB的SGA,但是由于Solaris错误,在操作系统级别处理大页面所花费的99.8%的时间是开销,导致CPU在内核模式下运行,造成服务器上的巨大负载(300+有32个内核)。数据库运行良好,24 GB的SGA,但无法处理负载300 GB的SGA。禁用Solaris中的大页面解决了这个问题(它有一个Solaris修补程序,但是本地管理员没有安装它.)。
然而,这些并不是Oracle的限制,而是配置问题。Oracle可以处理大量内存。我们的一个客户已经使用了500 GB+ SGA很长时间没有任何问题,他们正在计划进一步增加它。
https://dba.stackexchange.com/questions/96771
复制相似问题