假设我有一个Oracle数据库,其数据文件大小为256GB。使用一个具有384 GB RAM的服务器来将整个数据库托管在RAM中是个好主意吗?
如果你只有128 GB的RAM,有什么区别吗?
我说的是缓存和Oracle内部工作,而不是基于内存的文件系统。假设OLTP和一个100GB的工作集。
问候,
假设您谈论的是Oracle使用内存进行缓存和其他进程,而不是基于内存的文件系统(这是一个糟糕的想法)。。。内存多总比内存少好。
现实世界的答案是取决于情况。如果你的工作数据集只有几GB或更少,那么额外的内存也不会有多大帮助。
您需要多少内存以及额外内存何时停止帮助取决于您的应用程序和DB(OLTP、DSS)的风格,没有简单的是/否答案。
使用视图V$SGA_TARGET_AVICE和V$PGA_TARGET_ADVICE来预测额外内存的性能改进。
Oracle记录了许多关于物理(磁盘)和逻辑(总)I/O请求的统计信息。人们过去常常被缓冲区缓存命中率所困扰。这可能会有所帮助,但这个数字并不能说明全部情况。如果这个比率是99%,那么你的缓存可能就足够了,增加更多的内存也无济于事。如果它很低,那么可能会受益于更多的内存,或者使用磁盘的进程不是时间关键型的。
在你要求更多内存之前要小心。我看到很多记忆被浪费了,因为有些人认为更多的记忆会解决一切问题。Oracle具有许多I/O功能,有助于减少内存需求。"内存数据库"的流行主要是炒作。