1.Oracle内存管理技术

  • 11g 新特性: AMM(Automatic Memory Management)
  • 10g 新特性: ASMM(Automatic Shared Memory Management)

Tips:

  • 即便启动了AMM,仍然可以将相关的内存初始化参数设置为下限值,防止Oracle自动调整为低值或零值。
  • Oracle11g 建议使用AMM配置新数据库,然后监视总体内存分配的效果,后续可以将数据库切换到ASMM,以便更精准的控制SGA的总大小。

2.配置自动内存管理(AMM)

-- memory_max_target是静态参数,是memory_target的上限,修改需要重启库
SQL> alter system set memory_max_target = 3G scope=spfile;
SQL> shutdown immediate
SQL> startup
-- 配置AMM,memory_target值
SQL> alter system set memory_target = 2G;
-- 为更好的发挥AMM调整作用,设置下面参数为零值
SQL> alter system set sga_target = 0;
SQL> alter system set pga_aggregate_target = 0;

3.监视自动内存管理(AMM)

## 3.1 通过EM查看 ##
EM主页:服务器(Server) -> 数据库配置(Database Configuration) -> 内存指导(Memory Advisors)
## 3.2 直接查询动态性能视图 ##
```
SQL> select * from v$memory_target_advice order by memory_size;

MEMORY_SIZE MEMORY_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR VERSION


    768                .25          402                   1          1
1536 .5 402 1 1
2304 .75 402 1 1
3072 1 402 1 1
3840 1.25 402 1 1
4608 1.5 402 1 1
5376 1.75 402 1 1
6144 2 402 1 1

8 rows selected.

<h1 id="4">4.配置自动共享内存管理(ASMM)</h1>
## 4.1 从手动内存管理切换到ASMM ##

-- 从手动内存管理切换到ASMM

alter system set sga_target = 1G;

-- 为更好的发挥ASMM作用,设置下面参数为零值

SQL> alter system set shared_pool_size = 0;

SQL> alter system set db_cache_size = 0;

SQL> alter system set java_pool_size = 0;

SQL> alter system set large_pool_size = 0;

SQL> alter system set streams_pool_size = 0;

## 4.2 从AMM切换到ASMM ##

-- 从AMM切换到ASMM,会根据当前SGA内存使用情况自动设置SGA_TARGET

alter system set memory_target = 0;

## 4.3 禁用ASMM ##

--下面命令使得所有初始化参数被设置为当前自动调整的值,禁用ASMM

alter system set sga_target = 0;

## 4.4 ASMM需要手工调整下面的参数 ##

ASMM只可以自动调整4.1中设置为零值的5个参数大小,而剩下的需要手工调整

-- DB_KEEP_CACHE_SIZE

-- DB_RECYCLE_CACHE_SIZE

-- DB_nK_CACHE_SIZE

-- LOG_BUFFER

手工设置这些参数值,会从SGA_TRAGET指定的内存中减去这些内存量。

<h1 id="5">5.配置自动PGA内存管理</h1>
PGA_AGGREGATE_TARGET的值可以由AMM推出来,也可以明确设置。

--PGA设置起点

Oracle单实例可用内存设置为占机器物理内存的80%

OLTP(在线事务处理):PGA占可用内存的20%

DSS(查询使用大量内存):PGA占可用内存的50%~70%

--查询pga相关动态视图

select * from v$pgastat;

select PGA_USED_MEM, PGA_ALLOC_MEM, PGA_FREEABLE_MEM, PGA_MAX_MEM from v$process;

更多PGA相关可参考:《[相克军_Oracle体系_随堂笔记007-PGA](http://www.cnblogs.com/jyzhao/p/3819372.html)》
<h1 id="6">Reference</h1>
- OCP 认证考试指南 (1Z0-053)[M]. 清华大学出版社, 2010.

Oracle内存管理技术的更多相关文章

  1. iOS开发ARC内存管理技术要点

    本文来源于我个人的ARC学习笔记,旨在通过简明扼要的方式总结出iOS开发中ARC(Automatic Reference Counting,自动引用计数)内存管理技术的要点,所以不会涉及全部细节.这篇 ...

  2. (转)iOS开发ARC内存管理技术要点

    转自:http://www.cnblogs.com/flyFreeZn/p/4264220.html 本文来源于我个人的ARC学习笔记,旨在通过简明扼要的方式总结出iOS开发中ARC(Automati ...

  3. iOS开发ARC机制下的内存管理技术要点

    转载一篇: iOS开发ARC内存管理技术要点.ARC内存管理原则总结.iOS ARC内存管理总结 ARC内存管理机制 (一)ARC的判断准则: 只要没有任何一个强指针指向该对象,该对象就会被释放. ( ...

  4. 这篇关于Oracle内存管理方式的介绍太棒了!我必须要转发,很全面。哈哈~

    "Oracle内存管理可分为两大类,自动内存管理和手动内存管理.其中手动内存管理又可分为自动共享内存管理,手动共享内存管理,自动PGA内存管理以及手动PGA内存管理.本文会简单的介绍不同的内 ...

  5. Oracle 内存管理

    --内存分配建库时可以先分配系统内存的50%-80%给Oracle,后期根据业务再进行调整.SGA.PGA分配比例:OLTP:SGA %80 , PGA %20OLAP:SGA %50 , PGA % ...

  6. Paddle源码之内存管理技术

    前言 在深度学习模型训练中,每次迭代过程中都涉及到Tensor的创建和销毁,伴随着的是内存的频繁 malloc和free操作,可能对模型训练带来不必要的 overhead. 在主流的深度学习框架中,会 ...

  7. [转载]linux段页式内存管理技术

    原始博客地址: http://blog.csdn.net/qq_26626709/article/details/52742470 一.概述 1.虚拟地址空间 内存是通过指针寻址的,因而CPU的字长决 ...

  8. Oracle内存管理(之二)

    [深入解析--eygle] 学习笔记 1.2.2 UGA和CGA UGA(用户全局区)由用户会话数据.游标状态和索引区组成.在共享server模式下,一个共享服务进程被多个用户进程共享,此时UGA是S ...

  9. Oracle内存管理(之四)

    [深入解析--eygle]学习笔记 1.3 SGA管理 SGA指系统全局区(System Global Area),是一块用于载入数据.对象并保存执行状态和数据库控制信息的一块内存区域,在数据库实例启 ...

随机推荐

  1. placehoder不兼容ie9以下和opero12以下

    颜色设置 解决方案一: ::-webkit-input-placeholder { /* WebKit browsers */ color:#999; } :-moz-placeholder { /* ...

  2. java web(六)多个请求对应一个Servlet

    概要: 提交请求的常用方式有两种,get/post , 运行程序后被请求,在加载执行web.xml文件时通过该文件中的映射关系找到即将要执行的Servlet; 而在要执行的Servlet文件中可通过反 ...

  3. 【noip 2005】 采药

    题目描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说:" ...

  4. ZK 样式使用

    控件: <textbox id="usernameTb" sclass="login-user-input" placeholder="账号&q ...

  5. Devexpress EXCEL导出

    #region EXCEL导出 /// <summary> /// EXCEL导出 /// </summary> /// <param name="saveFi ...

  6. Spring MVC 框架的架包分析,功能作用,优点

    由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关j ...

  7. ajax post提交form表单 报400错误 解决方法

    昨天晚上做项目遇到了一个奇怪的问题,我用ajax提交一个form表单,后台Java方法用的是一个实体接,但是他根本不进方法体中,直接给我一个400的错误,一开始我以为是我路径的问题(尴尬),结果直接访 ...

  8. 用c#创建支持多语言的WinForm应用程序

    实现多语言的方法可能有使用资源文件,或者配置xml两种方法吧.没时间研究过多,学习了一下使用资源文件的方法,成功了. 在.net2.0 中,m$ 为我们提供了一种简单方便的方法, 使用资源文件 1.新 ...

  9. C#使用HttpWebRequest 进行请求,提示 基础连接已经关闭: 发送时发生错误。

    本人今天遇到的错误,C#使用HttpWebRequest 进行请求,提示 基础连接已经关闭: 发送时发生错误. 测试了很久,才发现,是安全协议问题,把安全协议加上就可以了

  10. VB6.0 为批量字体改名

    从网上下载了一个字符包,解压以后查看,发现文件名是这种形式:0120_XXXXXX_GBK.ttf,看上去很不雅观.我想改成 XXXXXX简体.ttf 这种形式,但字体有300多个,手动修改太浪费时间 ...