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 ...
随机推荐
- 每日英语:A Better Way To Treat Anxiety
Getting up the nerve to order in a coffee shop used to be difficult for 16-year-old Georgiann Steely ...
- Storyboard 全解析
XCode 4.3.2 新功能 - Storyboard 最近开始比较有空在玩 XCode 4.3.2,赫然发现它多了个 Storyboard 的东东. Storyboard 这个东西一般来说是在做创 ...
- FreeRTOS 系统时钟节拍和时间管理
以下转载自安富莱电子: http://forum.armfly.com/forum.php FreeRTOS 的时钟节拍任何操作系统都需要提供一个时钟节拍,以供系统处理诸如延时. 超时等与时间相关的事 ...
- oracle时间操作结合to_char和to_date使用
1,按每个10分钟进行分组展示数据 例如 有这么一张表 XATXDAY_FLIGHT(航班飞航表), 有这么一个字段 STD_LOCAL(起飞时间), 要求:统计一天24小时之内每隔10分钟,这10分 ...
- Centos 挂载NTFS格式的USB硬盘
公司的一台服务器本身硬盘容量较小,要加一块2T的硬盘,用来做samba服务器,以下是挂载硬盘的主要记录: 这是服务器不认NTFS格式的情况:mount: unknown filesystem type ...
- c/c++常见关键字解释
c语言中常见关键字: char : =>声明字符型变量或函数 double :=>声明双精度变量或函数 enum : =>声明枚举类型 float: =>声明 ...
- eclipse代码补全按键修改成Tab
https://www.eclipse.org/downloads/compare.php?release=oxygen 下载eclipse带有源文件的版本 打开Eclipse,点击 window - ...
- pip和 easy_insall的区别
作为Python爱好者,如果不知道easy_install或者pip中的任何一个的话,那么...... easy_insall的作用和perl中的cpan,ruby中的gem类似,都提供了在线一键 ...
- C++ 匿名对象的生命周期
//匿名对象的生命周期 #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; class Poin ...
- 逻辑斯特回归(logistic regression)与最大熵模型(maximum entropy model)