Oracle 自动内存参数依赖性,oracle参数依赖性
图例:在该图中使用了以下参数名称缩写:
MT = MEMORY_TARGET
MMT = MEMORY_MAX_TARGET
ST = SGA_TARGET
PAT = PGA_AGGREGATE_TARGET
SMS = SGA_MAX_SIZE
MEMORY_TARGET 设置为非零值时:
如果设置了 SGA_TARGET 和 PGA_AGGREGATE_TARGET,则会分别将它们当作 SGA 大小和 PGA 大小的下限值。MEMORY_TARGET 可以采用从 SGA_TARGET + PGA_AGGREGATE_TARGET 到 MEMORY_MAX_SIZE 的值。
如果设置了 SGA_TARGET 但未设置 PGA_AGGREGATE_TARGET,则仍会自动优化这两个参数。PGA_AGGREGATE_TARGET 将初始化为 (MEMORY_TARGET-SGA_TARGET) 的值。
如果设置了 PGA_AGGREGATE_TARGET 但未设置 SGA_TARGET,则仍会自动优化这两个参数。SGA_TARGET 将初始化为 MEMORY_TARGET-PGA_AGGREGATE_TARGET 和 SGA_MAX_SIZE(如果用户设置了该参数)中的最小值,并自动优化子组件。
如果未设置任何参数,则无需任何下限值或默认值即可自动优化这两个参数。会在初始化过程中,将服务器的总内存以固定的比率分配给 SGA 和 PGA。根据该策略,将在启动时为 SGA 分配 60% 的内存,为 PGA 分配 40% 的内存。
如果未设置 MEMORY_TARGET 或者将其显式设置为 0(默认值为 0):
如果设置了 SGA_TARGET,则数据库将仅自动优化 SGA 的子组件的大小。PGA 的自动优化与是否显式设置 PAG 无关。但是,不会自动优化整个 SGA (SGA_TARGET) 和 PGA (PGA_AGGREGATE_TARGET),即不自动增长或收缩。如果 SGA_TARGET 和 PGA_AGGREGATE_TARGET 都未设置,则将采用当前使用的策略;自动优化 PGA,不自动优化 SGA,需要显式设置某些子组件的参数 (SGA_TARGET)。
如果仅设置了 MEMORY_MAX_TARGET,则使用初始化文本文件进行手动设置时,MEMORY_TARGET 默认为 0。SGA 和 PGA 的自动优化行为默认为 10g R2 的行为。
如果用户未设置 SGA_MAX_SIZE,则当用户设置了 MEMORY_MAX_TARGET 时,会在内部将 SGA_MAX_SIZE 设置为 MEMORY_MAX_TARGET(与用户是否设置了 SGA_TARGET 无关)。
在初始化参数文本文件中,如果省略了 MEMORY_MAX_TARGET 行,并包含了 MEMORY_TARGET 的值,则数据库会自动将 MEMORY_MAX_TARGET 设置为 MEMORY_TARGET 的值。如果省略 MEMORY_TARGET 行,并包含 MEMORY_MAX_TARGET 的值,则 MEMORY_TARGET 参数默认为 0。启动后,如果 MEMORY_TARGET 未超过 MEMORY_MAX_TARGET 值,则可以将其动态更改为非零值。
内存缓冲区顾问DB_CACHE_ADVICE参数用于是否要自动搜集不同数据高速缓存尺寸的建议信息。
有三种状态:
READY:不会生成数据高速缓存尺寸的建议信息,但会分配Advisory内存;
ON:会生成数据高速缓存尺寸的建议信息;
OFF:不会生成数据高速缓存尺寸的建议信息,也不会分配Advisory内存。
这个是11g版本的参数,内存自动管理,也就是SGA和PGA两个区域大小,Oracle会自动调整和管理。安装完了就有这个参数了,这个是oracle内存参数。可以修改。方法有两种:1、通过命令修改,alter system set 参数名=值 scope=spfile;或者将spfile文件创建为pfile文件,修改后再转成spfile文件,重启Oracle就OK了。命令:create spfile from pfile;和create pfile from spfile;