内存管理
数据库的活动主要就是 Cursor 的活动
一个关键的参数是_use_realfree_heap,当设置这个参数为 true 时,Oracle 会为 CGA、UGA 单 独分配堆,而不从 PGA 中分配。它的默认值为 false,而当设置了 pga_aggregate_target 后,它的值自动被改为 true
对于一个单纯的数据库服务器,通常我们需要保留 20%的物理内存给操作系 统使用,剩余 80%可以分配给 Oracle 使用
在 AIX 上通常建议 Oracle 使用内存不超过物理内存的 70%
某会话对pga的耗用
select pid,spid,username,pga_used_mem,pga_alloc_mem,pga_freeable_mem,pga_max_mem from v$process where spid=2803;
PGA 内存消耗在什么地方
SELECT p.program,p.spid,pm.category,pm.allocated,pm.used,pm.max_allocated
FROM V$PROCESS p, V$PROCESS_MEMORY pm
WHERE p.pid = pm.pid AND p.spid = 2803;
SQL 在工作区中以三种方式执行:
优化方式(Optimal)-指所有处理可以在内存中完成
onepass - 大部分操作可以在内存中完成,但是需要使用到磁盘操作 multipass - 大量操作需要产生磁盘交互,性能极差
PGA 性能指标
SELECT NAME, VALUE,
100*( VALUE/ DECODE ((SELECT SUM (VALUE) FROM v$sysstat
WHERE NAME LIKE 'workarea executions%'), 0, NULL, (SELECT SUM (VALUE) FROM v$sysstat
WHERE NAME LIKE 'workarea executions%'))) pct
FROM v$sysstat WHERE NAME LIKE 'workarea executions%';
修改隐藏参数
alter system set "_pga_max_size"=400M;
数据库的活动主要就是 Cursor 的活动
一个关键的参数是_use_realfree_heap,当设置这个参数为 true 时,Oracle 会为 CGA、UGA 单 独分配堆,而不从 PGA 中分配。它的默认值为 false,而当设置了 pga_aggregate_target 后,它的值自动被改为 true
对于一个单纯的数据库服务器,通常我们需要保留 20%的物理内存给操作系 统使用,剩余 80%可以分配给 Oracle 使用
在 AIX 上通常建议 Oracle 使用内存不超过物理内存的 70%
某会话对pga的耗用
select pid,spid,username,pga_used_mem,pga_alloc_mem,pga_freeable_mem,pga_max_mem from v$process where spid=2803;
PGA 内存消耗在什么地方
SELECT p.program,p.spid,pm.category,pm.allocated,pm.used,pm.max_allocated
FROM V$PROCESS p, V$PROCESS_MEMORY pm
WHERE p.pid = pm.pid AND p.spid = 2803;
SQL 在工作区中以三种方式执行:
优化方式(Optimal)-指所有处理可以在内存中完成
onepass - 大部分操作可以在内存中完成,但是需要使用到磁盘操作 multipass - 大量操作需要产生磁盘交互,性能极差
PGA 性能指标
SELECT NAME, VALUE,
100*( VALUE/ DECODE ((SELECT SUM (VALUE) FROM v$sysstat
WHERE NAME LIKE 'workarea executions%'), 0, NULL, (SELECT SUM (VALUE) FROM v$sysstat
WHERE NAME LIKE 'workarea executions%'))) pct
FROM v$sysstat WHERE NAME LIKE 'workarea executions%';
修改隐藏参数
alter system set "_pga_max_size"=400M;