OracleDB自动管理共享内存(三)

2014-11-24 09:03:58 · 作者: · 浏览: 2
默认缓冲区高速缓存、大型池和流池)的总大小限制为 7 GB。7 GB 大小包括固定 SGA 和日志缓冲区。只有分配了这些内存之后,才会在自动优化的组件之间分配剩余的内存。保留高速缓存的大小为 1 GB,由参数指定。
使用V$PARAMETER 视图 \
使用V$PARAMETER 视图 为SGA_TARGET指定非零值,并且没有为自动优化的 SGA 参数指定值时,V$PARAMETER 视图中自动优化的 SGA 参数的值为 0,ISDEFAULT 列的值为 TRUE。如果为任何自动优化的 SGA 参数指定了一个值,则查询 V$PARAMETER 时显示的值是为该参数指定的值。
调整SGA_TARGET 的大小 SGA_TARGET初始化参数: – 是动态参数 – 最大可以增加到SGA_MAX_SIZE – 可以缩小此参数,直到所有组件都达到最小 – 更改只影响自动调整大小的组件 包括SGA 中的所有部分: – 固定SGA 和其它内部分配 – 自动调整大小的SGA 组件 – 手动SGA 组件 允许Oracle 服务器精确地调整总共享内存分配的大小
调整SGA_TARGET的大小 SGA_TARGET是动态参数,可以通过 DNT 或使用ALTER SYSTEM 命令进行更改。SGA_TARGET最大可以增大到 SGA_MAX_SIZE的值。可以缩小此参数,直到任何一个自动优化的组件都达到其最小大小:用户指定的最小值或内部确定的最小值。如果增加 SGA_TARGET的值,则将根据自动优化策略在自动优化的组件之间分配附加的内存。 如果减小 SGA_TARGET的值,则将按照自动优化策略从一个或多个自动优化的组件获取内存。因此,SGA_TARGET的值中的任何更改只影响自动优化的组件大小。 例如,将 SGA_MAX_SIZE设置为 10 GB ,并将 SGA_TARGET设置为8 GB。如果将DB_KEEP_CACHE_SIZE 设置为1 GB,并将 SGA_TARGET增加到9 GB,则只在SGA_TARGET控制的组件之间分配附加的 1 GB。DB_KEEP_CACHE_SIZE 的值不受影响。同样,如果将 SGA_TARGET减小到7 GB,则将只从 SGA_TARGET控制的组件获取 1 GB。此减小操作不会更改明确设置的参数(例如 DB_KEEP_CACHE_SIZE )的最小值设置。
禁用自动管理共享内存 将SGA_TARGET设置为零会禁用自动优化。 将自动优化的参数设置为其当前大小。 SGA 大小整体上不受影响。 \
禁用自动管理共享内存 可以通过将 SGA_TARGET设置为零,动态选择禁用自动管理共享内存。在这种情况下,会将所有自动优化的参数的值设置为相应组件的当前大小,即使以前为自动优化的参数指定了不同的非零值也是如此。 在本幻灯片的示例中,SGA_TARGET的值为8 GB,SHARED_POOL_SIZE 的值为1 GB。如果系统在内部将共享池组件的大小调整为 1.5 GB ,然后将 SGA_TARGET设置为零,则会使SHARED_POOL_SIZE 被设置为1.5 GB ,从而覆盖原来用户指定的值。
配置ASMM \
配置自动管理共享内存 可以使用 DNT 配置自动管理共享内存,步骤如下所示: 单击“Administration(管理)”选项卡。 在“Database Configuration(数据库配置)”标题下选择“Memory Parameters(内存参数)”。 单击“SGA ”选项卡。 单击“Automatic Shared Memory Management(自动管理共享内存)”的“Enable(启用)”按钮,然后输入总的 SGA 大小(MB)。此大小代表为 SGA_TARGET指定的值。 要禁用“Automatic Shared Memory Management(自动管理共享内存)”,请单击“Disable(禁用)”。 在Oracle Database 10 g 版本2 中,自动管理共享内存的默认设置为“Enable (启用)”。在“Memory Parameters(内存参数)”页上可以看到一个新的图表,用于显示 SGA 分配的历史记录。可以将光标放在图表中您感兴趣的区域,以便在图表右侧突出显示图例中的组件。 注:不会通过 EM 界面显示流池。
SGA Advisor \
SGA Advisor SGA Advisor 显示如果指定了总的 SGA 大小,数据库时间方面可以得到的改善。在此示例中,如果总的 SGA 大小增加到大约 470 MB,则数据库时间方面大约可以得到 5% 的改善。 使用此指导可以减少设置 SGA 大小时反复试验的次数。 指导数据将存储在 V$SGA_TARGET_ADVICE 表中,包含下列值: SGA_SIZE :SGA 的大小 SGA_SIZE_FACTOR:SGA_SIZE 与SGA 的当前大小的比率 ESTD_DB_TIME:为此 SGA_SIZE 估计的DB_TIME ESTD_DB_TIME_FACTOR:ESTD_DB_TIME与SGA 当前大小的 DB_TIME的比率 ESTD_PHYSICAL_READS:估计的物理读取数 注:数据库时间与“使用自动工作量资料档案库”课程中说明的“数据库时间”相同。数据库时间包括执行操作的所有等待,在这种情况下,差异在于不同 SGA_TARGET大小所需的读取数和写入数。
监视ASMM 监视自动管理共享内存,并使用下列视图检查所做的调整大小决策: V$SGA_CURRENT_RESIZE_OPS:有关正在进行的调整大小SGA 操作的信息 V$SGA_RESIZE_OPS :包含最近800 个SGA 调整大小请求的循环历史记录缓冲区 V$SGA_DYNAMIC_COMPONENTS:所有内存组件的当前状态 V$SGA_DYNAMIC_FREE_MEMORY:有关以后的调整大小操作可用的SGA 内存的信息
监视ASMM 下列视图提供有关动态 SGA 调整大小操作的信息: V$SGA_CURRE NT_RESIZE_OPS :有关当前正在进行的 SGA 调整大小操作的信息。操作可以是增加或收缩动态 SGA 组件。 V$SGA_RESIZE_OPS :有关最近完成的 800 个SGA 调整大小操作的信息。其中不包括当前正在进行的任何操作。 V$SGA_DYNAM IC_COMPONENTS :有关 SGA 中的动态组件的信息。此视图基于启动后完成的所有 SGA 调整大小操作汇总信息。 V$SGA_DYNAM IC_FREE_MEMORY:有关以后的动态 SGA 调整大小操作可用的 SGA 内存量的信息。 注:有关这些视图的详细信息,请参阅《Oracle Database Reference 》指南。

小结 启用EM 内存参数 设置自动优化的内存参数 设置手动优化的SGA 参数 使用SGA Advisor 设置SGA_TARGET