oracle内存pga+sga设置方法

合集下载

Oracle数据库内存优化操作说明

Oracle数据库内存优化操作说明

Oracle数据库内存优化操作说明Oracle数据库内存优化是提高数据库性能的重要手段之一。

通过设置合理的内存参数,可以有效地削减IO操作,提高数据访问速度。

本文将介绍一些常见的Oracle数据库内存优化操作。

一、调整PGA参数PGA(Program Global Area)是每个数据库会话独有的内存区域,用于存储排序、哈希操作等临时数据。

调整PGA参数可以提高排序和连接操作的性能。

1. 设置PGA_AGGREGATE_TARGET参数该参数把握PGA内存的总量,一般建议设置为SGA的1/3到1/2。

可以通过以下命令设置:ALTER SYSTEM SET PGA_AGGREGATE_TARGET=XXXM;2. 调整SORT_AREA_SIZE参数该参数把握每个排序操作使用的PGA内存大小,一般建议设置为100MB到200MB。

可以通过以下命令设置:ALTER SESSION SET SORT_AREA_SIZE = XXXM;3. 调整HASH_AREA_SIZE参数第1页/共4页该参数把握每个哈希操作使用的PGA内存大小,一般建议设置为SORT_AREA_SIZE的1/2到1倍。

可以通过以下命令设置:ALTER SESSION SET HASH_AREA_SIZE = XXXM;二、调整SGA参数SGA(System Global Area)是Oracle数据库的全局共享内存区域,用于存储缓存数据、SQL执行方案等。

调整SGA参数可以提高数据访问的速度。

1. 调整SHARED_POOL_SIZE参数该参数把握缓存SQL语句的内存大小,一般建议设置为SGA的1/4到1/3。

可以通过以下命令设置:ALTER SYSTEM SET SHARED_POOL_SIZE=XXXM;2. 调整DB_CACHE_SIZE参数该参数把握数据库缓冲区的内存大小,一般建议设置为SGA的1/2到2/3。

可以通过以下命令设置:ALTER SYSTEM SET DB_CACHE_SIZE=XXXM;3. 调整LOG_BUFFER参数该参数把握数据库日志缓冲区的内存大小,一般建议设置为10MB到100MB。

Oracle数据库内存优化操作说明

Oracle数据库内存优化操作说明

千里之行,始于足下。

Oracle数据库内存优化操作说明Oracle数据库的内存优化操作主要包括以下几个方面:1. 调整SGA和PGA的大小:- SGA(System Global Area)是Oracle数据库实例使用的内存区域,包括数据库缓存、共享池等。

可以通过修改SGA_TARGET和SGA_MAX_SIZE等参数来调整SGA的大小。

- PGA(Program Global Area)是每个进程独自使用的内存区域,包括排序区、hash区等。

可以通过修改PGA_AGGREGATE_TARGET参数来调整PGA的大小。

2. 合理配置各个内存区域的大小:- 根据具体的数据库负载情况,可以调整SGA组件的大小,如缓冲区大小、共享池大小等,以提高数据库的性能。

- 合理配置PGA区域的大小,可以减少排序操作的磁盘访问,提高查询效率。

3. 使用自动内存管理 AMM(Automatic Memory Management):- AMM是Oracle 11g及以上版本中提供的内存管理特性,可以自动分配SGA和PGA的大小。

可以通过设置MEMORY_TARGET参数来启用AMM。

4. 使用自动PGA管理:- Oracle 12c及以上版本中提供了自动PGA管理特性,可以根据需要自动调整PGA的大小。

可以通过设置PGA_AGGREGATE_TARGET参数来启用自动PGA管理。

5. 合理配置数据库连接池:第1页/共2页锲而不舍,金石可镂。

- 如果数据库中有大量的并发连接,可以考虑启用连接池来管理连接,减少连接的开销,提高数据库的并发性能。

6. 合理配置数据库缓存:- Oracle数据库中有多个缓存区域,如数据缓存、共享池等,可以根据具体的负载情况,调整缓存的大小,以提高查询性能。

需要注意的是,内存优化操作可能会引起数据库的性能变化,因此在进行内存优化之前,最好先进行充分的测试和评估,以确保优化操作是必要且有效的。

Oracle数据库参数优化

Oracle数据库参数优化

千里之行,始于足下。

Oracle数据库参数优化Oracle数据库参数优化是指通过调整数据库的配置参数,提高数据库的性能和稳定性。

下面是一些常见的Oracle数据库参数优化技巧:1. SGA参数优化:- 调整sga_target参数以控制SGA的大小。

SGA包括数据库缓冲区、共享池、重做日志缓冲区等,适当调整SGA的大小可以减少IO操作,提高数据库性能。

- 调整db_cache_size参数以增大数据库缓冲区的大小,提高数据块的访问速度。

- 调整shared_pool_size参数以增大共享池的大小,提高SQL语句的解析和执行效率。

2. PGA参数优化:- 调整pga_aggregate_target参数以控制PGA的大小。

PGA是用于处理SQL查询和排序的内存区域,适当调整PGA的大小可以减少磁盘IO操作,提高查询和排序的性能。

3. Redo日志参数优化:- 调整log_buffer参数以增大重做日志缓冲区的大小,减少频繁的重做日志刷新操作,提高数据库的写入性能。

- 调整log_checkpoint_timeout参数以控制重做日志刷新的频率,避免过于频繁的刷新。

4. 并行处理参数优化:- 调整parallel_max_servers参数以增大并行处理的资源限制,提高并行查询和并行DML操作的性能。

第1页/共2页锲而不舍,金石可镂。

- 调整parallel_min_servers参数以设置最小的并行处理资源数,避免并行操作的启动延迟。

5. SQL优化:- 使用合适的索引和优化的SQL语句,优化查询的执行计划。

- 使用绑定变量而不是直接将参数传递到SQL语句中,避免SQL重解析,提高性能。

6. 服务器参数优化:- 调整processes参数以增加数据库的并发连接数。

- 调整sessions参数以控制数据库的最大会话数。

- 调整open_cursors参数以增大打开游标的数量,避免游标溢出。

以上是一些常见的Oracle数据库参数优化技巧,但具体的优化策略需要根据实际情况进行调整,可以参考Oracle官方文档和专业的DBA建议。

oracle 10g 修改SGA,PGA大小

oracle 10g 修改SGA,PGA大小

Chinaunix首页 | 论坛 | 博客 登录 | 注册加关注短消息论坛加好友博客访问: 122183博文数量: 304博客积分: 5970博客等级: 大校用 户 组: 普通用户注册时间: 2011-04-03 23:13文章分类全部博文(304)excel数值处理(2)数据结构(1)dreamweaver (1)mobile (1)network (4)攻击和防御(5)系统架构(5)系统启动管理(5)数据库(103)开发(22)系统优化(12)监控工具(1)性能测试(24)操作系统(90)杂谈(8)基础知识(20)未分配的博文(0)文章存档2013年(4)2012年(246)2011年(54)我的朋友给主人留下些什么吧!~~布毫铯2012-05-16 21:24:43Oracle 11g与10g有什么不同 ?回复 | 举报EnchanterBlue 0Oracle日常性能查看使用 RMAN 同步数据库LoadRunner 测试Oracle数据库...Oracle工程系统与安全高可用...oracle中substr函数的用法...Oracle中如何保证用户只有一个...java单例模式详解oracle SQL笔记vm安装oracleRAC10G 数据库int类型转换成字符...oracle 10g 修改SGA,PGA大小 2012-05-15 23:08:18分类: Oracleoracle 10g 修改SGA,PGA 大小一、概念SGA 指系统全局区域(System Global Area),是用于存储数据库信息的内存区,该信息为数据库进程所共享。

PGA 指进程全局区域(Process Global Area),包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反,PGA 是只被一个进程使用的区域,PGA 在创建进程时分配,在终止进程时回收。

Oracle 10g 提供了PGA 内存的自动管理。

修改数据库的oracle的sga和pga的值

修改数据库的oracle的sga和pga的值

修改数据库的ORACLE的SGA和PGA的值/**时间:2009-04-07 Monday*环境:Windows 2003 Oracle10g10.2.0.1.0*标题:修改数据库的ORACLE的SGA和PGA的值*/1、在用客户端连接:用plsql连接数据库时出现“ORA-12518:TNS:监听程序无法分发客户机连接”2、查看了alert_SID.log日志:Doing block recovery for file 3 block 35992Sat Apr 04 07:35:14 2009Errors in filee:\oracle\product\10.2.0\admin\xboms\bdump\xboms_pmon_3920.trc:ORA-04030: 在尝试分配8389132 字节(pga heap,redo read buffer) 时进程内存不足Sat Apr 04 07:35:23 2009Process startup failed, error stack:Sat Apr 04 07:35:23 2009Errors in filee:\oracle\product\10.2.0\admin\xboms\bdump\xboms_psp0_3408.trc:ORA-27300: OS 系统相关操作: spcdr:9261:4200 失败, 状态为: 997ORA-27301: OS 故障消息: 重叠I/O 操作在进行中。

ORA-27302: 错误发生在: skgpspawn3、$ORACLE_HOME/network/log/listener.log日志:03-4月-2009 22:10:40 开始就报下面的错误:04-4月-2009 07:36:19 * ping * 004-4月-2009 07:36:19 *(CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER= SYSTEM))(COMMAND=status)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=erp1)(PORT=1568)))(VERSION=16986956 8)) * status * 004-4月-2009 07:36:28 *oracle\product\10.2.0\db_1\perl\5.8.3\bin\MSWin32-x86-multi-thread\perl.exe)(HOST=ERP1)(U SER=SYSTEM))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.142.80.40)(PORT=2287)) * establish * XBOMS* 12518TNS-12518: TNS: 监听程序无法分发客户机连接TNS-12560: TNS: 协议适配器错误TNS-00530: 协议适配器错误32-bit Windows Error: 233: Unknown error对数据库做个AWR(自动负载资料库)报告和ADDM(自动数据库诊断监听)报告,addm要求增加数据库的SGA 服务器的CPU是8个2.00GHz,8GB内存。

SGA建议值和修改

SGA建议值和修改

ORACLE数据库SGA分配原则以及设置方法----HRP项目研发中心(董珮)一、SGA分配原则以及设置方法在调整SGA前,先看下服务器操作系统是32位还是64位的,如果是32位的,则SGA 最大不能超过1.7G,如果是64位的,则不能超过4G。

1.SGA、PGA的分配原则OLTP:SGA=系统内存*0.56,PGA=SGA*(0.1~0.2)OLAP:SGA=系统内存*0.48,PGA=SGA*(0.45~0.65)8G的话SGA设置4G就差不多了...PGA设置为1G差不多了2.设置方法(修改前请备份SPFILEORCL.ORA文件,该文件路径为:10g oracle为%%\oracle\product\10.2.0\db_1\dbs\SPFILE KYEEYXT.ORA 11g oracle为%%\app\Administrator\product\11.2.0\dbhome_1\database \SPFILE KYEEYXT.ORA)SQL> show parameter sga;SQL> alter system set sga_max_size=4096M scope=spfile;System altered.SQL> alter system set sga_target=4096M scope=spfile;System altered.3.重启数据库更改设置生效SQL>shutdown immediate; --停止数据库服务Database closed.Database dismounted.ORACLE instance shut down.SQL> startup --启动数据库服务ORACLE instance started.Total System Global Area 4294967296 bytesFixed Size 2026296 bytesVariable Size 805307592 bytesDatabase Buffers 3472883712 bytesRedo Buffers 14749696 bytesDatabase mounted.Database opened.SQL> show parameter sga; --查看SGA设置是否生效NAME TYPE VALUE----------- ------------------------------lock_sga boolean FALSEpre_page_sga boolean FALSE sga_max_size big integer 4Gsga_target big integer 4G二、注意事项SGA调整过大的时候数据库将会启动不起来,以下为当不小心调整的SGA超过了系统内存的情况下的处理办法:SQL> show parameter pfile找到SPFILE KYEEYXT.ORA的文件%ORACLE_HOME%\DATABASE\SPFILE KYEEYXT.ORA修改该文件中sga_max_size和sga_target的值为正常值就可以了,记得一定要在修改SGA 前备份SPFILE KYEEYXT.ORA文件!!!!切记!!!注:文中红色字体均为可自定义部分,需要根据现场实际情况来进行修改。

Oracle内存参数调优设置

Oracle内存参数调优设置

Oracle内存参数调优设置Oracle 数据库系统中起到调节作⽤的参数叫初始化参数,数据库管理员根据实际情况需要适当调整这些初始化参数以优化Oracle系统。

1 主要系统参数调优介绍 2 系统内存参数的分配 2.1 Oracle 实例= 内存结构 + 进程结构 内存结构 = SGA + PGA SGA(系统全局区):⽤户存储数据库信息的内存区,该区域为数据库进程所共享。

它包含服务器的数据和控制信息,主要包含⾼速数据缓冲区、共享池、重做⽇志缓存区、Java池,⼤型池等内存结构。

SGA的设置,理论上SGA的⼤⼩应该占OS的内存的 1/3-1/2左右。

SGA + PGA + OS使⽤的内存 < 总的物理内存 查看当前系统SGA的信息select name,bytes/1024/1024 as "Size(M)"from v$sgainfo; 根据查询信息显⽰当前还有148M可⽤的SGA内存,系统当前的内存配置并不是最优的,我们在实际使⽤过程中根据情况可以重新分配内存。

2.2 SGA的设置原则 SGA = (db_block_buffers * db_block_size) + (shared_pool_size + large_pool_size + java_pool_size + log_buffers) (1)缓冲区⾼速缓存(database_buffer_cache):主要存储由磁盘数据⽂件写⼊的数据 ⼤⼩:db_block_buffers * db_block_size分配原则:缓冲区⾼速缓存的调整,⽤户进程所存取的所有数据都是经过缓冲区⾼速缓存来存取,所以该部分的命中率,对性能⾄关重要。

缓冲区⾼速缓存的使⽤情况记录在动态性能表v$sysstat中,可通过查询该表来了解其活动情况,以决定如何调整。

select name,value from v$sysstat where name in ('dbblock gets','consistent gets','physical reads');dbblock gets和consistent gets的值是请求数据缓冲区中读的总次数。

oracle 19c参数

oracle 19c参数

oracle 19c参数Oracle 19c参数设置详解Oracle数据库是一款业界著名的关系型数据库管理系统,其版本不断更新迭代,最新版本为Oracle 19c。

在数据库的运行过程中,参数的设置对于性能和稳定性起着至关重要的作用。

本文将详细介绍Oracle 19c的一些重要参数及其设置方法,帮助读者更好地优化数据库的性能和稳定性。

1. SGA_TARGETSGA_TARGET参数决定了系统全局区(SGA)的大小,SGA是Oracle数据库在内存中的关键组件,包括缓冲区高速缓存、共享池和重做日志缓冲区等。

通过合理设置SGA_TARGET参数,可以提高数据库的性能。

可以使用以下语句设置SGA_TARGET参数的值:ALTER SYSTEM SET SGA_TARGET=XXXM SCOPE=SPFILE;2. PGA_AGGREGATE_TARGETPGA_AGGREGATE_TARGET参数用于控制PGA(程序全局区)的大小,PGA用于存储用户进程的私有数据,如排序操作和HASH JOIN的中间结果。

通过适当设置PGA_AGGREGATE_TARGET参数,可以优化排序和连接操作的性能。

设置PGA_AGGREGATE_TARGET参数的方法如下:ALTER SYSTEM SET PGA_AGGREGATE_TARGET=XXXM SCOPE=SPFILE;3. PROCESSESPROCESSES参数决定了数据库同时能够处理的最大用户连接数。

在高并发环境下,需要增加PROCESSES参数的值,以支持更多的用户连接。

可以使用以下语句设置PROCESSES参数的值:ALTER SYSTEM SET PROCESSES=XXX SCOPE=SPFILE;4. SESSIONSSESSIONS参数用于限制数据库同时打开的会话数,每个用户连接都会占用一个会话。

在高并发环境下,需要增加SESSIONS参数的值,以支持更多的用户同时访问。

Oracle之内存结构(SGA、PGA)

Oracle之内存结构(SGA、PGA)

Oracle之内存结构(SGA、PGA)2、多种缓冲池(buffer pool)1)Keep:通过db_keep_cache_size参数指定。

该buffer内的数据可能被重用,以降低I/O操作。

该池的大小要大于指定到该池的段的总和。

读入到keep buffer的块不需要过期操作。

2)Recycle:通过db_recycle_cache_size参数指定。

该池中的数据被重用机会较小,该池大小要小于分配到该池的段的总和。

读入该池的块需要经常执行过期处理。

3)Default:相当于一个没有Keep与Recycle池的实例的buffer cache,通过db_cache_size参数指定。

3、为对象明确指定buffer poolbuffer_pool子句,用来为对象指定默认的buffer pool,是storage子句的一部分。

对create与alter table、cluster、index语句有效。

如果现有对象没有明确指定buffer pool,则默认都指定为default buffer pool,大小为DB_CACHE_SIZE参数设置的值。

语法:a.CREATE INDEX cust_idx ON tt(id) STORAGE (BUFFER_POOL KEEP);b.ALTER TABLE oe.customers STORAGE (BUFFER_POOL RECYCLE);c.ALTER INDEX oe.cust_lname_ix STORAGE (BUFFER_POOL KEEP);(二)、Share Pool1、SHARE_POOL_SIZE1)Share Pool可通过SHARE_POOL_SIZE参数指定:SQL> alter system set shared_pool_size=20M scope=both;2)Share Pool保存的信息被多个会话共享,类型包括:a.Library CacheLibrary Cache又包含共享SQL区与PL/SQL区:a).共享SQL区保存了分析与编译过的SQL语句。

oracle 11g sga pga的设置原则 和方法

oracle 11g sga pga的设置原则 和方法

oracle 11g sga pga的设置原则和方法Oracle 11g中SGA(System Global Area)和PGA(Program Global Area)的设置原则和方法如下:1. SGA的设置原则:- 根据系统的内存大小和应用的需求,确定SGA的大小。

SGA主要包括Buffer Cache、Shared Pool、Large Pool、Java Pool等组件,需要根据数据库的访问模式和数据量大小来进行调整。

- 尽量使用自动内存管理(Automatic Memory Management,AMM)来管理SGA的大小和组件分配,这样可以更加灵活地管理内存资源。

2. SGA的设置方法:- 手动设置SGA大小:可以通过修改初始化参数文件(initSID.ora)的SGA相关参数来手动设置SGA的大小,如SGA_TARGET、SGA_MAX_SIZE等。

需要重启数据库以使设置生效。

- 使用AMM:在使用AMM的情况下,只需要设置SGA_TARGET参数为所需的SGA大小,Oracle会自动根据系统的内存大小和负载情况进行动态调整。

3. PGA的设置原则:- 根据应用的并发性和查询的复杂度,以及数据库服务器的硬件资源(CPU、内存)等因素来确定PGA的大小。

- PGA主要包括Sort Area、Hash Area、Bitmap Merge Area等组件,需要根据查询的需求和并发性来决定这些组件的大小。

4. PGA的设置方法:- 使用PGA_AGGREGATE_TARGET参数:PGA_AGGREGATE_TARGET参数用于指定PGA的目标大小,Oracle会根据这个目标值和实际的应用需求来动态分配PGA的大小。

- 手动设置PGA大小:可以通过设置PGA相关的初始化参数(如SORT_AREA_SIZE、HASH_AREA_SIZE等)来手动控制PGA的大小,需要重启数据库以使设置生效。

Oracle 内存分配与调整.

Oracle 内存分配与调整.

Oracle 内存分配与调整一、前言对于oracle 的内存的管理,截止到9iR2,都是相当重要的环节,管理不善,将可能给数据库带来严重的性能问题。

下面我们将一步一步就内存管理的各个方面进行探讨。

二、概述oracle 的内存可以按照共享和私有的角度分为系统全局区和进程全局区,也就是SGA 和PGA(process global area or private global area 。

对于SGA 区域内的内存来说,是共享的全局的,在UNIX 上,必须为oracle 设置共享内存段(可以是一个或者多个,因为oracle 在UNIX 上是多进程;而在WINDOWS 上oracle 是单进程(多个线程,所以不用设置共享内存段。

PGA 是属于进程(线程私有的区域。

在oracle 使用共享服务器模式下(MTS,PGA 中的一部分,也就是UGA 会被放入共享内存large_pool_size 中。

对于SGA 部分,我们通过sqlplus 中查询可以看到:SQL> select * from v$sga;NAME V ALUEFixed Size 454032Variable Size 109051904Database Buffers 385875968Redo Buffers 667648其中:Fixed Size:oracle 的不同平台和不同版本下可能不一样,但对于确定环境是一个固定的值,里面存储了SGA 各部分组件的信息,可以看作引导建立SGA 的区域。

Variable Size:包含了shared_pool_size 、java_pool_size 、large_pool_size 等内存设置Database Buffers:指数据缓冲区,在8i 中包含db_block_buffer*db_block_size 、buffer_pool_keep 、buffer_pool_recycle 三部分内存。

Oracle管理的内存区

Oracle管理的内存区

SGA,PGA,UGA都是Oracle管理的内存区。

SGA(System Global Area),即系统全局区,Oracle中最重要的内存区。

PGA(Process Global Area),即程序全局区,一个进程的专用的内存区。

UGA(User Global Area),即用户全局区,与特定的会话相关联。

专用服务器连接模式,UGA在PGA中分配。

共享服务器连接模式,UGA在SGA中的Large Pool中分配。

如果采用专用服务器连接模式,PGA中包含UGA,其他区域用来排序,散列和位图合并。

简单来讲,PGA=UGA+排序区+散列区+位图合并区。

PGA分两种管理模式:1) 手动PGA内存管理,用户指定排序区和散列区所使用的内存,每个连接使用相同的内存。

2) 自动PGA内存管理,告诉Oracle可以使用的PGA的总量,由Oraclce根据系统负载决定具体分配。

9iR1时默认为手动PGA内存管理,9iR2以后默认为自动PGA内存管理。

PGA内存可以动态扩大和回收。

PGA内存管理模式由WORKAREA_SIZE_POLICY控制。

1) 设为MANUAL,启用手动内存管理。

2) 设为AUTO,并且PGA_AGGREGATE_TARGET不为0时,启用自动内存管理。

有三个参数对PGA影响最大。

SORT_AREA_SIZE:对信息排序所用的内存总量SORT_AREA_RETAINED_SIZE:排序后在内存中保存排序信息的内存总量。

HASH_AREA_SIZE:存储散列列表所用的内存量。

下面对这三个参数进行说明:1) SORT_AREA_SIZE:如果SORT_AREA_SIZE设为512KB,SORT_AREA_RETAINED_SIZE也为512KB,则Oracle使用512KB的内存进行排序,排序后所有数据都留在内存中。

2) SORT_AREA_RETAINED_SIZE:如果SORT_AREA_SIZE设为512KB,SORT_AREA_RETAINED_SIZE设为384KB,则Oracle使用512KB的内存进行排序,然后保留384KB的已排序数据,另外512KB-384KB=128KB的已排序数据会写到临时表空间中。

oracle 11g 更改sga

oracle 11g 更改sga

一、SGA与PGA的结构:SGA查看SGA:Sqlp> show sga或 select * from v$sga;Total System Global Area 289406976 bytesFixed Size 1248600 bytesVariable Size 176161448 bytesDatabase Buffers 109051904 bytesRedo Buffers 2945024 bytesFixed Size:包括了数据库与实例的控制信息、状态信息、字典信息等,启动时就被固定在SGA中,不会改变。

Variable Size:包括了shard pool、large pool、java pool、stream pool、游标区和其他结构Database Buffers:数据库中数据块缓冲的地方,是SGA中最大的地方,决定数据库性能Redo Buffers:提供REDO缓冲的地方,在OLAP中不需要太大V$sgastat记录了SGA的一些统计信息V$sga_dynamic_components 保存SGA中可以手动调整的区域的一些调整记录Shard pool:Shard_pool_size决定其大小,10g以后自动管理Shard_pool中数据字典和控制区结构用户无法直接控制,与用户有关的只有sql缓冲区(library cache)。

将经常访问的过程或包用DBMS_SHARED_POOL.KEEP存储过程将该包pin在共享池中。

手工清除共享池的内容:alter system flush shard_pool;共享池相关的几个常用的视图:V$sqlarea 记录了所有sql的统计信息,包括执行次数、物理读、逻辑读、耗费时间等V$sqltext_with_newline 完全显示sql语句,通过hash_value来标示语句,piece排序V$sql_plan保存了sql的执行计划,通过工具查看V$shared_pool_advice 对共享池的预测,可以做调整SGA的参考SGA:System Global Area是Oracle Instance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池、数据缓冲区、日志缓冲区。

SGA和PGA管理

SGA和PGA管理

关于SGA设置的一点总结本总结不针对特例,仅对服务器只存在OS + ORACLE 为例,如果存在其它应用请酌情考虑写这个也是因为近来这种重复性的问题发生的太多所导致的首先不要迷信STS,SG,OCP,EXPERT 等给出的任何建议、内存百分比的说法基本掌握的原则是,data buffer 通常可以尽可能的大,shared_pool_size 要适度,log_buffer 通常大到几百K到1M就差不多了设置之前,首先要明确2个问题1:除去OS和一些其它开销,能给ORACLE使用的内存有多大2:oracle是64bit or 32 bit,32bit 通常SGA有1.7G 的限制(某些OS的处理或者WINDOWS上有特定设定可以支持到2G以上甚至达到3.7G,本人无这方面经验)下面是我的windows2000下的oracle :SQL> select * from v$version;BANNER----------------------------------------------------------------Oracle8i Enterprise Edition Release 8.1.7.0.0 - ProductionPL/SQL Release 8.1.7.0.0 - ProductionCORE 8.1.7.0.0 ProductionTNS for 32-bit Windows: Version 8.1.7.0.0 - ProductionNLSRTL Version 3.4.1.0.0 - ProductionSQL>select distinct length(address) from v$sql;16表示数据库是64bit,8表示数据库是32bitwindows上存在32bit的限制,如AIX、HP UNIX 等有明确的64BIT OS and ORACLE的版本,32bit oracle 可以装在64bit os 上,64 bit oracle不能装在32 bit OS上不管oracle是32 bit ORACLE还是64 bit 的,假定应用存在没有很好的使用bind var 的情况,也不能设置shared_pool_size 过大,通常应该控制在200M--300M,如果是ORACLE ERP 一类的使用了很多存储过程函数、包,或者很大的系统,可以考虑增大shared_pool_size ,但是如果超过500M可能是危险的,达到1G可能会造成CPU的严重负担,系统甚至瘫痪。

修改oracle10g数据库SGA和PGA大小

修改oracle10g数据库SGA和PGA大小
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 436M
sga_target big integer 436M
和pgaoracle推荐oltponlinetransactionprocessing系统oracle占系统总内存的80然后再分配80给sga20给pga
修改oracle10G数据库SGA和PGA大小
修改SGA和PGA
oracle推荐OLTP(on-line Transaction Processing)系统oracle占系统总内存的80%,然后再分配80%给SGA,20%给PGA。也就是
2、修改sga_target
SQL>alter system set sga_target=436M;
3、修改sga_max_size
SQL> alter system set sga_max_size=436M scope=spfile;
4、重启数据库使其生效:
SQL>shutdown immediate;
##注意,重启前一定先完成上述两部操作,且sga_target不得大于sga_max_size,一般保持两者相等
。否则可能导致数据库无法启动。
SQL>startup
5、查看SGA是否生效:
SQL>show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- -----
SGA=system_total_memory*80%*80%
PGA=system_total_memory*80%*20%
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

11g 中新增MEMORY_MAX_TARGET 参数,此参数一出现就如在10g 中第一次出现SGA_MAX_SIZE 参数一样给人以耳目一新的感觉。

memory_max_target 是设定Oracle能占OS多大的内存空间,一个是Oracle SGA 区最大能占多大内存空间。

无疑在11g Oracle 又向自动管理内存更进一步。

10g 的sga_max_size 是动态分配 Shared Pool Size,database buffer cache,large pool,java pool,redo log buffer 大小的,只是根据Oracle 运行状况来重新分配SGA 各内存块的大小。

PGA在10g 中需要单独设定.
11g MEMORY_MAX_TARGET 参数包含两部分内存,一个 System global area (SGA),另一个 system global area(PGA)。

很显然在11g 中可已经将PGA 和SGA 一
起动态管理了。

下面来看看在11g 中Memory_target 设置和不设置对SGA/PGA 的影响:
A:如果Memory_target 设置为非0 值
(下面有四种情况来对SGA 和PGA 的大小进行分配)
1:sga_target 和 pga_aggregate_target 已经设置大小如果Oracle 中已经设置了参数sga_target 和pga_aggregate_target,则这两个参数将各自被分配为最小值最为它们的目标值。

Memory_Target =SGA_TARGET+PGA_AGGREGATE_TARGET ,大小
和 memory_max_size 一致。

2:sga_target 设置大小, pga_aggregate_target 没有设置大小那么pga_aggregate_target初始化值=memory_target-sga_target 3:sga_target 没有设置大小, pga_aggregate_target 设置大小那么sga_target 初始化值=memory_target-pga_aggregate_target 4:sga_target 和 pga_aggregate_target 都没有设置大小 Oracle 11g 中对这种sga_target 和pga_aggregate_target 都没有设定大小的情况下,Oracle将对这两个值没有最小值和默认值。

Oracle 将根据数据库运行状况进行分配大小。

但在数据库启动是会有一个固定比例来分配:
sga_target =memory_target *60%
pga_aggregate_target=memory_target *40%
B:如果Memory_target 没有设置或=0 (在11g 中默认为0)
11g 中默认为0 则初始状态下取消了Memory_target 的作用,完全和10g 在内存管理上一致,完全向下兼容。

(也有三种情况来对SGA 和PGA 的大小进行分配)
1:SGA_TARGET设置值,则自动调节SGA 中的shared pool,buffer cache,redo log buffer,java pool,larger pool
等内存空间的大小。

PGA 则依赖pga_aggregate_target 的大小。

sga 和pga 不能自动增长和自动缩小。

2:SGA_target 和PGA_AGGREGATE_TARGET 都没有设置
SGA 中的各组件大小都要明确设定,不能自动调整各组建大小。

PGA 不能自动增长和收缩。

3: MEMORY_MAX_TARGET 设置而MEMORY_TARGET =0 这种情况先和10g 一样,不做说明
在11g 中可以使用下面看各组件的值
SQL> show parameter target
NAME TYPE VALUE
------------------------ ----------- ---------------------
archive_lag_target integer 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 1024M
memory_target big integer 1024M
pga_aggregate_target big integer 0
sga_target big integer 0
如果需要监视Memory_target 的状况则可以使用下面三个动态试图:
V$MEMORY_DYNAMIC_COMPONENTS
V$MEMORY_RESIZE_OPS
v$memory_target_advice
使用下面Command 来调节大小:
SQL>ALTER SYSTEM SET MEMORY_MAX_TARGET = 1024M SCOPE = SPFILE;
SQL>ALTER SYSTEM SET MEMORY_TARGET = 1024M SCOPE = SPFILE;
SQL>ALTER SYSTEM SET SGA_TARGET =0 SCOPE = SPFILE;
SQL>ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 0 SCOPE = SPFILE;。

相关文档
最新文档