- 浏览: 115819 次
- 性别:
- 来自: 北京
文章分类
最新评论
db_cache_size与sga_target关系
db_cache_size设置buffer cache的大小与DB_BLOCK_SIZE相关
当sga_target设置非零时,如果没有设置默认为零(由oracle调整),如果设置,表示用户指定的最小值。
如果sga_target没有设置,默认值为48m或者4MB * number of CPUs * granule size,以较大者为主。
sga_target设置所有sga组件的大小包括如下
Buffer cache (DB_CACHE_SIZE)
* Shared pool (SHARED_POOL_SIZE)
* Large pool (LARGE_POOL_SIZE)
* Java pool (JAVA_POOL_SIZE)
* Streams pool (STREAMS_POOL_SIZE)
如果这些值未设置,由oracle分配,如下池不由自动内存管理控制
* Log buffer
* Other buffer caches, such as KEEP, RECYCLE, and other block sizes
* Fixed SGA and other internal allocations
计算buffer cache命令中率
SELECT NAME, VALUE
FROM V$SYSSTAT
WHERE NAME IN ('db block gets from cache', 'consistent gets from cache', 'physical reads cache');
公式:
1 - (('physical reads cache') / ('consistent gets from cache' + 'db block gets from cache')
如果命中率小于90%应该考虑增加buffer cache
buffer cache按段来保存db_block并按大小分为keep pool和recycle pool
keep保存高频率访问的段,recycle设置可防止不必要的default buffer占用
alter table tablename storage(buffer_pool keep);
计算缓冲池的命中率
SELECT NAME, PHYSICAL_READS, DB_BLOCK_GETS, CONSISTENT_GETS, 1 - (PHYSICAL_READS / (DB_BLOCK_GETS + CONSISTENT_GETS)) "Hit Ratio" FROM V$BUFFER_POOL_STATISTICS;
查看对象在buffer cache中的段的大小
SELECT o.OBJECT_NAME, COUNT(*) NUMBER_OF_BLOCKS FROM DBA_OBJECTS o, V$BH bh WHERE o.DATA_OBJECT_ID = bh.OBJD AND o.OWNER != 'SYS' GROUP BY o.OBJECT_NAME ORDER BY COUNT(*);
查找对象段的ID号
SELECT DATA_OBJECT_ID, OBJECT_TYPE FROM DBA_OBJECTS WHERE OBJECT_NAME = UPPER('segment_name');
segment_name一般为数据库对象名。查看oracle动态组件信息
select * from v$sga_dynamic_component;
share pool
包括library cach与directory cache
前者保存plsql块和sql语句
后者保存数据字典
alter parameter set cursor_sharing=similar;
设置游标共享可以重用相同sql语句
查询时最好用绑定变量方式,查询时对象标识使用schema.表对象格式,这些都会起到最大化使用share cache的目地
如果经常使用sequence可以使用alter sequence sequencename cache value;使用cache保存sequence
查看library cache的信息
SELECT NAMESPACE, PINS, PINHITS, RELOADS, INVALIDATIONS
FROM V$LIBRARYCACHE
ORDER BY NAMESPACE;
计算命中率
select sum(PINS),sum(PINHITS) from v$LIBRARYCACHE order by namespace;
计算公式:
sum(PINHITS)/sum(PINS);
share pool分析视图
V$SHARED_POOL_ADVICE
V$LIBRARY_CACHE_MEMORY
V$JAVA_POOL_ADVICE
V$JAVA_LIBRARY_CACHE_MEMORY
计算dircotry cache命中率
查看directory cache相关信息
SELECT parameter , sum(gets) , sum(getmisses) , 100*sum(gets - getmisses) / sum(gets) pct_succ_gets , sum(modifications) updates FROM V$ROWCACHE WHERE gets > 0 GROUP BY parameter;
命中率SELECT (SUM(GETS - GETMISSES - FIXED)) / SUM(GETS) "ROW CACHE" FROM V$ROWCACHE;
large pool用途:并行查询,恢复管理,共享服务(共享模式)
CURSOR_SPACE_FOR_TIME用户可以通过设置这个参数为True,使得Oracle使用更多的Shared SQL Area去保存SQL,从而提高反复执行SQL解析的速度
SESSION_CACHED_CURSORS,就是说的是一个session可以缓存多少个cursor,让后续相同的SQL语句不再打开游标,从而避免软解析的过程来提高性能
ALTER SESSION SET SESSION_CACHED_CURSORS = value;
DBMS_SHARED_POOL将常用对象放入share pool,忽略LRU
DBMS_SHARED_POOL.KEEP 常用游标,plsql,sequence设置设置CURSOR_SHARING值(similar,force)提高相似语句查询性能
redo log buffer LGWR写redo log在下列三种情况 log buffer三分之一 LGWR调用commit roolback时 DBWR调用LGWR时 批量提交可以提升log buffer性能 当加载大数量数据时使用nologing参数 默认值 MAX(0.5M, (128K * number of cpus))
PGA
保存排序操作,散列连接,位图合并,位图创建
默认大小为sga 20%由PGA_AGGREGATE_TARGET设置
OLTP
PGA_AGGREGATE_TARGET
= (total_mem
* 80%) * 20%DSS
PGA_AGGREGATE_TARGET
= (total_mem
* 80%) * 50%total_mem为可用的操作系统内存
查看pga信息
SELECT * FROM V$PGASTAT;pga命中率SELECT NAME, CASE WHEN unit='bytes' THEN VALUE/1024/1024 ELSE VALUE END AS VALUE, unit
from v$pgastat命中率[bytes processed]/([bytes processed] + [extra bytes read/written]) * 100
V$PROCESS查询每个oracle进程连接的实例
V$PROCESS_MEMORY查询每个类型
V$SQL_WORKAREA显示被SQL游标使用的工作区信息
发表评论
-
Google公开Megastore论文——解决NoSQL、SQL融合难题
2011-03-02 14:44 668实际上,作为一个建 ... -
开源数据库Sharding技术
2011-03-02 16:14 709内容摘要:Sharding 不是一个某个特定数据库软件附 ... -
Java 开发 2.0: 使用 Hibernate Shards 进行切分
2011-03-02 16:26 637当关系数据库试图在 ... -
可扩展的分布式数据库架构
2011-03-03 14:44 682本文发表在《程序员 ... -
OLTP系统与DSS系统对比
2011-03-03 15:35 646在进行数据库系统的设计时,一个不可忽视的问题是弄清你所 ... -
Oracle高级复制机制
2011-03-10 15:48 658Oracle高级复制即可支 ... -
Oracle高级复制的同步复制的配置步骤说明
2011-03-10 15:50 831以下的文章主要讲述的是Oracle高级复制的同步复制,如 ... -
linux oracle中文乱码问题解决方法
2011-04-11 15:18 758connect system/oracle9i ... -
ubuntu下安装ocfs2
2011-07-12 14:20 969简介 一个集群文件系统能使运行在集群中所有节点并发的通过 ... -
asm下载地址
2011-07-12 16:50 878asm rpm包下载地址http://www.oracle.c ... -
oracle重要初始参数
2011-09-28 17:15 870OPEN_CURSORS session可以打开的游标最大数, ... -
SQLJ是什么?优点?
2011-10-11 09:56 912SQLJ是一种允许把静态的SQL语句以文本形式嵌入Java程序 ... -
共享池的调整与优化(Shared pool Tuning)
2011-10-11 10:53 732共享池(Shared pool)是SGA中最关键的内存片段,共 ... -
使用DBMS_SHARED_POOL包将PL/SQL大对象保存到Shared Pool
2011-10-11 16:32 723当系统在加载PL/SQL大对象时,有可能遭遇由于SharedP ... -
oracle sga相关
2011-10-12 17:08 836oracle主要影响性能的内存: Shared ... -
oracle索引分类
2011-10-17 13:31 850B-TREE INDEX,B树索引:在创建索引时他是 ... -
修改oracle redo log的大小
2011-10-17 15:53 11011.查看现在的REDO GRO ... -
本地管理表空间
2011-10-18 13:29 758本地管理表空间的好处: 1:快速,并发空间操作 ... -
Oracle表空间命令
2011-10-19 16:55 795创建立表空间 CREATE TABLESPACE ... -
Oracle 索引组织表(IOT)
2011-10-28 09:16 796索引组织表(IOT)有一种类B树的存储组织方法。普通的堆组织表 ...
相关推荐
### 调整Oracle内存及调整表空间大小的方法 #### Oracle内存管理 Oracle数据库的内存管理对于确保数据库高效运行至关重要。内存配置不当可能导致性能下降甚至系统崩溃。在默认情况下,Oracle会根据系统的总内存自动...
### Oracle内存分配与调整——详解冯春培的文章 #### 一、引言 在Oracle数据库管理系统中,内存管理是一项至关重要的任务。不合理的内存配置可能导致性能下降甚至系统故障。冯春培作为一位经验丰富的Oracle专家,...
本文将深入探讨"Oracle内存分配与调整"这一关键主题,旨在帮助你提升Oracle系统的运行效率和响应速度。 Oracle内存结构主要分为两大部分:SGA(System Global Area)和PGA(Program Global Area)。SGA是数据库进程...
oracle内存分配与调整.pdforacle内存分配与调整.pdf
本文将深入探讨Oracle内存分配的相关知识点,以及如何进行调整以优化数据库性能。 Oracle内存主要分为两个主要部分:SGA(System Global Area)和PGA(Program Global Area)。SGA是数据库进程共享的一块内存区域,...
首先,我们来了解Oracle内存的基本架构,它主要由两大部分组成:PGA(Program Global Area)和SGA(System Global Area)。PGA是为每个服务器进程单独分配的内存区域,用于存储过程变量、游标、排序区等。而SGA则是...
### 减少Oracle内存占用 在Windows XP环境下运行Oracle 10g时,可能会遇到数据库占用内存过高的问题。这不仅会影响系统的稳定性,还可能导致其他应用程序因可用内存不足而受到影响。本文将详细介绍如何通过合理设置...
本文将详细介绍 ORACLE 自动内存管理和存储调整的相关知识点。 一、自动内存管理 自动内存管理是 ORACLE 数据库中的一种功能,它可以根据系统的实际情况自动调整内存的使用,以提高数据库的性能和效率。自动内存...
Oracle 数据库内存调整是优化数据库性能的关键步骤,尤其是在大型企业级应用中,高效的内存管理能够显著提升数据库的响应速度和整体效率。Oracle 内存主要分为两大类:系统全局区(System Global Area, SGA)和进程...
### Oracle 10g的内存调整报告 #### 内存配置的重要性 Oracle 数据库的内存配置对于数据库的整体性能至关重要。不恰当的内存设置不仅会导致性能下降,还可能引发各种难以定位的问题。因此,在进行Oracle 10g的内存...
4. **内存管理的变迁**:Oracle内存管理经历了从早期的静态分配到动态调整,再到自动共享内存管理(ASMM)和自动内存管理(AMM)的演变。AMM使得数据库能够自动管理SGA和PGA,简化了管理员的工作。 5. **Shared ...
ADDM是Oracle的自动诊断监视器,定期分析数据库性能,提出内存调整建议。 2. 实时监控 定期检查V$SESSION、V$PGA_MEMORY_ALLOCATIONS等视图,监控内存使用状态,及时发现异常。 总结,Oracle内存全面分析涉及SGA...
"Oracle内存资源分配"是数据库管理员必须掌握的关键技能,它涉及到Oracle数据库系统的Shared Global Area (SGA) 和Program Global Area (PGA) 的配置与调整。 首先,SGA是Oracle数据库运行时共享内存的主要区域,它...
SGA+PGA最好不要超过总内存的70%,内存详细调整方案,供学习。
这份名为"Oracle 内存全面分析"的PDF文档深入探讨了Oracle内存架构的各个方面,对于DBA(数据库管理员)和开发人员来说,理解这些知识至关重要。 Oracle内存主要由两大部分构成:System Global Area (SGA) 和 ...
总之,Oracle内存结构的全面分析涵盖了SGA、PGA和UGA的各个组成部分,以及如何通过参数调整和管理策略优化内存使用,以实现最佳的数据库性能。了解这些内存结构及其交互方式对于解决性能问题和预防故障至关重要。