1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

Oracle10g 管理系统全局区简介

2022-11-27 | 数据库 | admin | 545°c
A+ A-

你对Oracle10g 管理系统全局区(SGA)的实际应用是否了解?对其的一些相关步骤的运行是否了如指掌?如果你对Oracle10g 管理系统全局区(SGA)的相关内容感兴趣的话,你就可以浏览我们的文章。

有几个影响SGA内存分配数量的参数,除了SGA_MAX_SIZE ,其他都是动态参数,也就是说在数据库运行期间可以使用ALTER SYSTEM 语句动态修改的参数.SGA的大小是动态的,通过修改这些参数可以是SGA增长或收缩.

SGA组件和SGA内存颗粒

由许多内存组件组成,他们是用于满足特定内存分配请求的内存池.例如共享池(用于缓冲磁盘数据块),所有的SAG以一个最小的内存单元颗粒分配和回收内存空间,Oracle在系统内部追踪SAG的内存单元的分配和使用情况.

SGA的内存分配是通过颗粒进行分配的,颗粒大小由SGA的大小决定.一般来将,在大多数平台,如果SGA小于等于1G,那么颗粒大小为4MB,如果大于1G,颗粒的大小为16MB,不同的是在32位Windows平台下,SGA大于1G时,颗粒大小位8MB而非16MB,详细信息,查看操作系统文档.

可以通过V$SGAINFO 系统试图查看由某个实例使用的颗粒大小.同样的大小用于所有SGA的动态组件.

如果指定的SGA组件的大小不是颗粒大小的整数倍,那么Oracle将会四舍五入求整而得到其整数倍值,赋给SGA内存组件.而不是你所指定的大小.例如如果颗粒大小为4MB,你给 DB_CACHE_SIZE 参数设定为10MB,那么实际分配的内存将会是12MB.

限制SGA的大小

SGA_MAX_SIZE 参数指定SGA在实例的生命期内的***数.动态修改这些参数影响的Buffer cache,shared pool,large pool,java pool,和streams pool的大小,和SGA的总大小.但是不能超过SGA_MAX_SIZE 参数所设定的值.

如果没有指定,那么默认把所有初始化参数中指定的内存组件的和作为期缺省值.

使用自动共享内存管理

通过使用SGA_TARGET参数来启用自动共享内存管理.以前手动分配的类似java_pool,large_pool这样的共享内存组件将被自动管理,另外,你必须确保STATISTICS_LEVEL初始化参数设置为TYPICAL(默认值)或ALL.

SGA_TARGET初始化参数反映了SGA的大小.

表2-3 自动分配大小的SGA组件和相应的参数

SGA 组件 初始化参数

Oracle10g 管理系统全局区(SGA)在固定的SGA和其他Oracle数据库实例需要的内部分配 不可用

共享池 SHARED_POOL_SIZE

大型池 LARGE_POOL_SIZE

Java池 JAVA_POOL_SIZE

缓冲区高数缓存 DB_CACHE_SIZE

表2-4 手动分配大小的使用SGA_TARGET空间的SGA组件

SGA 组件 初始化参数

日志缓冲区 LOG_BUFFER

The keep and recycle buffer caches DB_KEEP_CACHE_SIZE

DB_RECYCLE_CACHE_SIZE

非标准缓冲区高数缓存块大小 DB_nK_CACHE_SIZE

流池 STREAMS_POOL_SIZE

在手动管理模式下执行如下SQL查询得到SGA_TARGET的值.

SELECT (

(SELECT SUM(value) FROM V$SGA) –

(SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY)

) "SGA_TARGET"

FROM DUAL;

然后你可以删除由Oracle自动管理的共享内存相应的初始化参数.

例如,当前你在手动管理模式下由如下配置,并且SGA_MAX_SIZE 设置为 1200M:

SHARED_POOL_SIZE = 200M

DB_CACHE_SIZE = 500M

LARGE_POOL_SIZE=200M

本文来源:1818IP

本文地址:https://www.1818ip.com/post/12000.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。