oracle内存pga+sga设置方法
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数据库的内存优化操作主要包括以下几个方面: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数据库参数优化技巧: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大小

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的值/**时间: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建议值和修改

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系统。
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数据库是一款业界著名的关系型数据库管理系统,其版本不断更新迭代,最新版本为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参数的值,以支持更多的用户同时访问。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;。