作者:@张扶摇
本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhangshengdong/p/11725205.html
目录
Oracle自动内存管理AMM
1.查看当前SGA_TARGET和PGA_AGGREGATE_TARGET参数。
2.修改相关参数,把sga和pga参数改为0
3.重启数据库实例:
4.监控和优化AMM的内存
Oracle自动内存管理AMM
AMM(Automatic Memory Management)自动内存管理,分配一整块内存区域,Oracle数据库自动分配管理SGA和PGA的内存。具体通过设置两个参数MEMORY_MAX_TARGET
和MEMORY_TARGET
达到需求效果。
1.查看当前SGA_TARGET和PGA_AGGREGATE_TARGET参数。
SYS@oradb> show parameter target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 0
memory_target big integer 0
parallel_servers_target integer 256
pga_aggregate_target big integer 2951M
sga_target big integer 4G
2.修改相关参数,把sga和pga参数改为0
alter system set memory_max_target=16384m scope=spfile;
alter system set memory_target=16384m scope=spfile;
alter system set sga_target=0 scope=spfile;
alter system set sga_max_size=0 scope=spfile;
alter system set pga_aggregate_target=0 scope=spfile;
3.重启数据库实例:
SQL>shutdown immediate;
SQL>startup;
SYS@oradb> show parameter target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 16G
memory_target big integer 16G
parallel_servers_target integer 256
pga_aggregate_target big integer 0
sga_target big integer 0
至此,数据库切换至AMM内存管理。
4.监控和优化AMM的内存
动态性能视图V$MEMORY_DYNAMIC_COMPONENTS
显示所有动态内存组件的当前大小。
动态性能视图V$MEMORY_RESIZE_OPS
会有一个circular history buffer,查看最近16G内存的请求情况。
动态性能视图V$MEMORY_TARGET_ADVICE
,会给与一个内存优化建议。
SYS@oradb> SELECT * FROM v$memory_target_advice ORDER BY memory_size;
MEMORY_SIZE MEMORY_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR VERSION
----------- ------------------ ------------ ------------------- ----------
4096 .25 487 1 0
8192 .5 487 1 0
10240 .625 487 1 0
12288 .75 487 1 0
14336 .875 487 1 0
16384 1 487 1 0
18432 1.125 487 1 0
20480 1.25 487 1 0
22528 1.375 487 1 0
24576 1.5 487 1 0
26624 1.625 487 1 0
28672 1.75 487 1 0
30720 1.875 487 1 0
32768 2 487 1 0
备注:Automatic Shared Memory Management (ASMM) was introduced in 10g. You enable the automatic shared memory management feature by setting the SGA_TARGET
parameter to a non-zero value.
关于SGA_TARGET
动态内存建议视图如下:
SYS@oradb> select * from v$sga_target_advice;
SGA_SIZE SGA_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR ESTD_PHYSICAL_READS
---------- --------------- ------------ ------------------- -------------------
2457 .25 488 1 42221
3685 .3749 488 1 42221
4914 .5 488 1 42221
6142 .6249 488 1 42221
7371 .75 488 1 42221
8599 .8749 488 1 42221
9828 1 488 1 42221
11056 1.1249 488 1 42221
12285 1.25 488 1 42221
13513 1.3749 488 1 42221
14742 1.5 488 1 42221
15970 1.6249 488 1 42221
17199 1.75 488 1 42221
18427 1.8749 488 1 42221
19656 2 488 1 42221
感谢您的阅读,如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮。本文欢迎各位转载,但是转载文章之后必须在文章页面中给出作者和原文连接。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统