首页 > 解决方案 > 如何增加 Oracle 19c DB 使用的内存

问题描述

我最近在具有 54GB 内存的 Windows 服务器上创建了一个 19c Enterprise DB。我为数据库分配了 48GB。今天我将物理内存增加到 116GB。我想将内存利用率增加到 106GB。

在调查内存参数时,我发现 SGA_LIMIT 和 MEMORY_MAX_TARGET 设置为 0。pga_aggregate_target 设置为 12205M。按照 Oracle 文档的指导,我进行了以下更改;

alter system set memory_max_target = 104G scope=spfile;

重新启动数据库

alter system set SGA_TARGET = 0 scope=both;
alter system set PGA_AGGREGATE_TARGET = 0 scope=both;

任务管理器显示内存利用率为 41GB。所以我运行了一些类似的查询;

select * from table_with_over_30M_rows order by 1,2,3,4;
select * from table_with_over_30M_rows t1 inner join other_table_with_45M_rows t2 on t2.id=t1.id;

这导致任务管理器内存利用率增加到 48GB。我已允许用户重新启动,并且内存利用率没有增加到 48GB 以上。

我相信有一些东西限制了记忆。我已经检查了我能想到的所有参数,没有任何问题。我的问题;

关于参数我应该寻找什么?

如何尝试强制消耗额外的内存?

我还可以采取哪些其他故障排除步骤?

标签: memoryoracle19c

解决方案


推荐阅读