ORACLE内存结构之SGA
SGA的管理:
SQL> show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 1584M
sga_target big integer 0
SGA的各个组件大小是可以动态调整的,总大小不超过参数SGA_MAX_SIZE或者SGA_TARGET的大小.
--log buffer不能被自动管理,
--share_pool_size db_cache_size large_pool_size java_pool_size streams_pool_size都可以被自动管理
SGA只需要
1、分配一个大小sga_max_size=(80%mem)*2/3
2、sga_target=<>
3、log buffer分配一个大小
4、其他可以被自动管理的也需要设置一个初始大小
SGA的分配和回收内存是由实例instance的开启和关闭来决定.
SGA是一个可读可写的内存区域,连接到实例上的用户都可以通过SGA读取数据,更新数据。ORACLE大部分操作都在内存中完成。大部分内存就是SGA了
SGA参数:
sga_max_size-->决定了granule size(<1G 4M >=1G 16M)
sga_target-->大于0为自动管理,否则为动态管理
shared_pool_size
large_pool_size
java_pool_size
db_cache_size
|
8i |
SGA总大小由所有内存组件大小之和决定,不能直接定义SGA大小,对内部组件大小的修改必须在数据库重启后才能生效,所以叫做SGA静态管理 |
|
9i |
SGA总大小由初始化参数SGA_MAX_SIZE确定,各个内存组件大小之和不能超过这个参数,在这个大小之下,SGA各个内存组件可以在不重启数据库的情况下直接修改大小,所以叫SGA动态管理 |
|
10g |
SGA大小可以像9i一样动态管理,也可以实施SGA的自动管理,只需要设置初始化参数SGA_TARGET,SGA各个内存组件就可以由数据库自动设置大小,设置的一句来源于系统自动收集的统计信息. |
在9i后,SGA的内部组件大小可以动态调整,也可以由数据库自动管理,在设置内存大小的时候,分配的基本单位是粒度(granule)
SGA包含的组件
Shared pool、database buffer cache、redolog buffer
Large pool、java pool、streams
Fixed size、variable size
|
共享池 |
暂存最近常用的SQL语句和相关数据字典信息 包括2个与语句解析性能相关的组成部分 库缓存 数据字典缓存 由参数SHARED_POOL_SIZE决定大小,可动态调整 Shared pool
用户提交一个SQL语句
Open cursor -->Found SQL in library cache? -->Yes------------------------>Bind variable? -->no-->Parse-->Define-->Bind variable? -->Yes-->Bind-->Parallelize -->No------------>Parallelize -->execute -->fetch -->close cursor 怎么用有限的内存保留经常被使用的SQL语句呢?LRU算法 LRU算法确定共享对象的持续保存期,长期不用的SQL保存信息会在LRU中释放. 如果不想释放,就调用dbms_shared_pool.keep存储过程将该过程或包驻留在shared pool中,以减少重新载入的开销. dbms_shared_pool提供以下功能将object或sql statement pin到shared pool… keep过程可以将对象pin入shared_pool,而不进入LRU机制; k).
|
|||||||||
|
重做日志缓冲区 Redo buffers |
重做日志缓冲区 暂存数据库中所有数据块的改变 内存管理方式是FIFO 重做日志被用于提供数据恢复功能 暂存重做日志的目的是为了提高语句的执行速度 大小由参数LOG_BUFFER决定,但这个内存区不能动态调整大小 show parameter log_buffer SQL> show parameter log_b NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_buffer integer 6774784 |
|
java池 |
java池也是一个系统全局区中可选内存区 用于java程序的解析和执行 大小由参数JAVA_POOL_SIZE决定,也可以动态调整 如果granule是4M,就默认设置是24M,如果granule是16M,就默认设置大小是32M 如果数据库创建时选了安装JVM组件,那么这个池必须配置 |
|
streams池 |
streams池 流池 缓冲一些高级队列的东西 一般设置12M就可以了 streams池在11gr2后才可以自动管理,之前需要手动设置 |
|
大型池 |
large_pool 大对象缓存时使用 大池是系统全局区中可选的一个内存区
SQL> show parameter large_pool_s NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ large_pool_size big integer 0 SQL> SQL> alter system set large_pool_size=10m; System altered. SQL> show parameter large_pool_s NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ large_pool_size big integer 16M SQL> 注意,虽然设置池的大小是10M,但是分配时是16M,因为我们内存的粒度是16M. 粒度的大小设置可以通过如下数据字典查看. SQL> select name,bytes/1024/1024 from v$sgainfo; NAME BYTES/1024/1024 -------------------------------- --------------- Fixed SGA Size 2.14937592 Redo Buffers 6.765625 Buffer Cache Size 624 Shared Pool Size 256 Large Pool Size 32 Java Pool Size 16 Streams Pool Size 0 Shared IO Pool Size 0 Granule Size 16 Maximum SGA Size 1576.91797 Startup overhead in Shared Pool 192.447815 NAME BYTES/1024/1024 -------------------------------- --------------- Free SGA Memory Available 640 12 rows selected. |
Fixed size And variable size
|
Fixed size |
SGA中有一部分数据是后台进程需要的,他们包含了数据库的跟实例的一些状态的数据,这部分数据叫做固定的SGA区域,这部分区域的内容是不能更改的,是当实例启动时就分配了,一旦启动后这部分内存区域是固定不变的,这部分内存不能进行共享,主要是后台进程需要的内存区,主要是用来关联数据库跟实例的一些状态或一些控制信息用的. SQL> show sga Total System Global Area 1653518336 bytes Fixed Size 2253784 bytes Variable Size 1224739880 bytes Database Buffers 419430400 bytes Redo Buffers 7094272 bytes |
|
Variable size |
可变区域 内存可以被共享,根据用户访问请求需要进行分配和回收 |
ORACLE内存结构之SGA的更多相关文章
- Oracle内存结构:SGA PGA UGA
内存结构是oracle数据库最重要的组成部分之一,在数据库中的操作或多或少都会依赖到内存,是影响数据库性能的重要因素Oracle数据库中包括3个基本的内存结构: 一. 系统全局区 (System G ...
- Oracle数据库基础入门《二》Oracle内存结构
Oracle数据库基础入门<二>Oracle内存结构 Oracle 的内存由系统全局区(System Global Area,简称 SGA)和程序全局区(Program Global Ar ...
- oracle 内存结构具体解释
Oracle 内存结构 与 Oracle 实例关联的基本内存结构包含: 系统全局区 (SGA):由全部server和后台进程共享.SGA 中存储的数据演示样例包含快速缓存的数据块和共享 SQL 区域. ...
- Oracle之内存结构(SGA、PGA)
一.内存结构 SGA(System Global Area):由所有服务进程和后台进程共享: PGA(Program Global Area):由每个服务进程.后台进程专有:每个进程都有一个PGA. ...
- [转载] Oracle之内存结构(SGA、PGA)
2011-05-10 14:57:53 分类: Linux 一.内存结构 SGA(System Global Area):由所有服务进程和后台进程共享: PGA(Program Global Area ...
- 【转载】Oracle之内存结构(SGA、PGA)
[转自]http://blog.itpub.net/25264937/viewspace-694917/ 一.内存结构 SGA(System Global Area):由所有服务进程和后台进程共享: ...
- oracle内存结构
一.内存结构 SGA(System Global Area):由所有服务进程和后台进程共享: PGA(Program Global Area):由每个服务进程.后台进程专有:每个进程都有一个PGA. ...
- Oracle 内存结构
内存结构 Oracle内存,进程与数据库的图 sga:系统全局区,用来存放操作的数据,库缓存,数据字典等控制信息的内存区域, pga:进程全局区,服务进程专用的内存区域,大多数内容非共享 uga:用 ...
- 【转】Oracle基础结构认知——oracle内存结构 礼记八目 2017-12-15 20:31:27
oracle的数据库实例是一组后台进程和内存结构组成的,而内存结构由系统全局区(system global area)和程序全局区(program global area)组成. #修改SGA和PGA ...
随机推荐
- Webservice实现与调用(基于Spring的多种方式)
一.Webservice实现 实现方式分类 1. spring实现 bean配置 <bean class="org.springframework.remoting.jaxws.Sim ...
- 兼容浏览器的min-height和min-width
http://www.cnblogs.com/pigtail/archive/2012/06/28/2568646.html CSS 子元素宽度变宽时,如何撑开父元素https://zhidao.ba ...
- 由于link顺序错误导致的undefined reference
其实我之前就遇到过这个问题,也强调过,GNU-G++在link阶段是依赖输入的.o或者.a文件的顺序的.如果顺序错误会导致undefined reference错误 见这篇随笔:http://www. ...
- 使用Cookie报错Control character in cookie value, consider BASE64 encoding your value
参考资料: http://www.blogjava.net/persister/archive/2009/10/02/297103.html http://blog.csdn.net/xiaozhen ...
- STM32 中断应用概览
本章参考资料< STM32F4xx 中文参考手册>第十章-中断和事件.<ARM Cortex™-M4F 技术参考手册> -4.3 章节: NVIC 和 4.4 章节: SCB— ...
- dp之01背包hdu2639(第k优解)
http://acm.hdu.edu.cn/showproblem.php?pid=2639 题意:给出一行价值,一行体积,让你在v体积的范围内找出第k大的值.......(注意,不要 和它的第一题混 ...
- java访问属性
- 004杰信-关于formSubmit('factorycreate.action','_self')路径的疑惑
本文材料来源于传智播客,在此说明. 整个项目结构:
- add命令
将文件加入到索引,要使用add命令.在<file>指定加入索引的文件.用空格分割可以指定多个文件. git add demo.html test.html //添加两个文件 添加当前目录下 ...
- Myeclipse 10 Maven 构建 Java Web 项目
主要介绍如何使用 Myeclipse 10 构建 Maven Web 项目,关于 Maven 的介绍就略过了. 工具/原料 myeclipse apache-maven-3.1.0 方法/步骤 1 下 ...