本章提要
--------------------------------------------------
SGA: System Global Area ( 包括background process)
PGA: Process Global Area 进程或线程专用内存
UGA: User Global Area 与session相关, 可能在SGA 或 PGA内分配
采用dedicated server 那么, UGA 就在 PGA 中, 否则, UGA在 SGA中
--------------------------------------------------
auto management memory
level 1: set two parameter to size SGA and PGA
level 2: MEMORY_TARGET (11g以后, 取代了 PAG_AGGREGATE_TARGET, 只要设置这一个就行了)
1. PGA and UGA
PGA: include UGA, memory sorting, hash operation, bitmap merging 等.
自动管理PGA内存, 设置memory_target(SGA 和 PGA一起)
也可以设置 pga_aggregate_target 这个参数来设置 pga 的下界
如果使用安装oracle软件时, 会有提示这个参数的大小. 而且有个默认值
So, in short, I prefer to use automatic PGA memory management for end-user sessions—for the
applications that run day to day against my database. Manual memory management makes sense for
large batch jobs that run during periods when they are the only activities in the database.
2. SGA
SGA 是共享的, 与PGA不同, 包括以下:
java pool: oracle 内部 JVM 使用内存.
large pool: shared server 中 session 相关, rman I/O 相关
shard pool: sql, plsql 相关
block buffer: 关于 data file 之间.
redo buffer: redo log file 之间.
Fixed SGA: 其他
等等
自动管理SGA内存, 设置memory_target(SGA 和 PGA一起)
也可以设置 sga_target 这个参数来设置 pga 的下界
3. 总结内存结构
个人感觉, 只要设置参数 MEMORY_TARGET 就可以了, 根据操作系统情况, 40%~70% 大概, 其余参数不用设置.
04 memory structure
最新推荐文章于 2021-04-12 07:07:01 发布
本文详细介绍了Oracle数据库中的两种主要内存区域:SGA(System Global Area)和PGA(Process Global Area)。探讨了它们各自的组成部分及其在自动内存管理和手动内存管理中的角色,并提供了如何合理设置相关参数的建议。
1333

被折叠的 条评论
为什么被折叠?



