oracle内存结构(一)

Oracle 内存结构

与Oracle 实例关联的基本内存结构包括:

系统全局区(SGA):由所有服务器进程和后台进程共享

程序全局区(PGA):由每个服务器和后台进程专用,每个进程都有一个PGA。

系统全局区(SGA) 是共享内存区,包含实例的数据和控制信息,由以下各项组成:

数据库缓冲区高速缓存(DB buffer cache):用于缓存从磁盘检索到的数据块

重做日志缓冲区(redo buffer):用于缓存重做信息,直到其可以写入磁盘为止

共享池(share pool):用于缓存可在用户间共享的各种结构

大型池(large pool):用于缓冲大型I/O 请求的可选区域,以便支持并行查询、共享服务器、

Oracle XA 以及rman等备份操作

Java 池(java pool):用于存放Java 虚拟机(JVM) 中特定于会话的Java 代码和数据

流池(stream pool):由Oracle Streams 使用

数据库缓冲区高速缓存、共享池、大型池、流池和Java 池的大小可以按照当前需求自动

调整。

granules:定义查看10g联机文档,

All SGA components allocate and deallocate space in units of granules. Oracle Database tracks SGA memory use in internal numbers of granules for each SGA component.

即oracle内存分配的基本单位,granules的大小取决于总sga的大小,大多数平台下,如果总的sga低于1G,则granules为4M,如果超过1G,则为16M。

Automatic Shared Memory Management(ASSM)

自动管理共享内存(ASMM) 是Oracle 数据库中另一个关键的自我管理增强功能。此功能使Oracle 数据库实例使用的大多数重要共享内存结构实现了管理自动化,减轻了手动配置这些组件的作量。除了更高效地利用可用内存,进而降低获取额外硬件内存资源所花费的成本以外,ASMM 功能还引进了更动态、更灵活和适应能力更强的内存管理方案,极大地简化了Oracle 数据库的管理。

例如,对于白天运行大型联机事务处理(OLTP) 作业(要求大型缓冲区高速缓存)和夜晚运行并行批处理作业(要求大型池的内存空间比较大)的系统,就必须同时配置缓冲区高速缓存和大型池,以便适应峰值需求。有了ASMM 功能,当OLTP 作业运行时,缓冲区高速缓存会获取大部分内存来保证良好的I/O 性能。以后启动数据分析和报告批处理作业时,内存又会自动移植到大型池,供并行查询操作使用,而不会产生内存溢出错误。

通过设置sga_target可以动态调整sga的结构,可调整的sga 组件如下:

Fixed SGA and other internal allocations needed by the Oracle Database instance

The log buffer

The shared pool

The Java pool

The buffer cache

The keep and recycle buffer caches (if specified)

Nonstandard block size buffer caches (if specified)

The Streams pool

SQL> show parameter sga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 1500M
sga_target                           big integer 1500M
时间: 2024-08-18 19:35:02

oracle内存结构(一)的相关文章

Oracle内存结构(之三)

[深入解析--eygle] 学习笔记 1.2.3 PGA的管理: [email protected] SQL>show parameter area_size NAME TYPE VALUE ------------------------------------ ---------------------------------------------------- bitmap_merge_area_size integer 1048576 create_bitmap_area_size i

ORACLE内存结构简介

ORACLE数据库作为世界上一款功能强大的数据库管理软件,功能体系特别庞大.我们有必要对它的每一部分学习了解,然后才从全局的角度进行有效把握.我们会着重从理论基础体系角度再逐步到实战应用.实际上,如果没有掌握基础理论体系,而直接生搬硬套一些维护技术经验,那也只是空中楼阁罢了.而如果你想直接通过一两篇文章学到什么秘籍成为维护或是DB优化高手那也是不现实的.所以这些文适合静下心来真正想了解学习ORALCE体系的读者.方法论掌握好,起码头脑中的思路方向是正确的,至于术也就是水到渠成. 我们通常所说的O

oracle 内存结构详解

Oracle 内存结构 与 Oracle 实例关联的基本内存结构包括: 系统全局区 (SGA):由所有服务器和后台进程共享.SGA 中存储的数据示例包括高速缓存的数据块和共享 SQL 区域. 程序全局区 (PGA):各个服务器进程和后台进程专用,每个进程都有一个 PGA. SGA 是共享内存区,包含实例的数据和控制信息,由以下各项组成: 数据库缓冲区高速缓存:用于缓存从磁盘检索到的数据块 重做日志缓冲区:用于缓存重做信息,直到其可以写入磁盘为止 共享池:用于缓存可在用户间共享的各种结构 大型池:

oracle内存结构

一.内存结构 SGA(System Global Area):由所有服务进程和后台进程共享: PGA(Program Global Area):由每个服务进程.后台进程专有:每个进程都有一个PGA. 二.SGA 包含实例的数据和控制信息,包含如下内存结构: 1)Database buffer cache:缓存了从磁盘上检索的数据块. 2)Redo log buffer:缓存了写到磁盘之前的重做信息. 3)Shared pool:缓存了各用户间可共享的各种结构. 4)Large pool:一个可选

[精]Oracle 内存结构详解

内存结构 现代计算机中,CPU 对内存的访问速度要比从磁盘的速度快千倍,因此 Oracle 对于数据的访问 也尽量都在内存中完成,而不是直接修改硬盘上的数据.内存内容在合适的时候再同步到磁盘. Oracle 利用内存来克服磁盘 IO的束缚,在内存中进行活动越多,系统性能越好,反之,在磁盘上进 行的操作越多,系统性能越差.(原文地址:http://blog.sunansheng.com/2016/04/29/oracle-memory/) Oracle 是一个内存消耗大户,它消耗的内存可以分成两部

Oracle内存结构:SGA PGA UGA

内存结构是oracle数据库最重要的组成部分之一,在数据库中的操作或多或少都会依赖到内存,是影响数据库性能的重要因素Oracle数据库中包括3个基本的内存结构: 一. 系统全局区  (System Global Area, SGA): SGA是一组共享内存结构, 被所有的服务和后台进程所共享.当数据库实例启动时,系统全局区内存被自动分配.当数据库实例关闭时,SGA内存被回收. SGA是占用内存最大的一个区域,同时也是影响数据库性能的重要因素. 查询SGA区的情况: SQL> show SGA T

2、Oracle内存结构

系统全局区(SGA),也叫共享全局区. 1.数据缓冲区(Data Buffer Cache): 用于存储从磁盘数据文件中读取的数据,供所有用户共享.用户修改数据后,修改后的数据先保存在数据库缓冲区中,最后由DBWn进程写入磁盘数据文件. 2.日志缓冲区(Redo Log Buffer Cache): 用于存储数据库的修改操作信息.当日志缓冲区中的日志数据达到一定限度时,由日志写入进程LGWR写入磁盘日志文件. 3.共享池(Shared Pool): 用于保存最近执行的SQL语句.PLSQL程序的

oracle 内存结构 share pool sql解析的过程

1.sql解析的过程 oracle首先将SQL文本转化为ASCII字符,然后根据hash函数计算其对应的hash值(hash_value).根据计算出的hash值到library cache中找到对应的bucket,然后比较bucket里是否存在该SQL语句. 如果不存在,获得shared pool latch,然后在shared pool中的可用chunk链表(也就是bucket)上找到一个可用的chunk,然后释放shared pool latch.在获得了chunk以后,这块chunk就可

oracle进程结构简介

我们经常说数据库实例,实例其实就是指的是数据库的内存结构和进程结构.我们安装数据库软件大量的是在安装其内存和进程组件结构.上篇节我们介绍了oracle内存结构,这节就介绍下oracle进程结构. 首先看下oracle进程的分类: 1)用户进程 是连接到Oracle DB 的应用程序或工具 2)数据库进程 服务器进程:连接到Oracle实例,在用户建立会话时启动 后台进程:在启动Oracle实例时启动 3) 守护程序/应用程序进程 网络监听程序 Gridinfrastructure 守护程序 从进