- 浏览: 110887 次
- 性别:
- 来自: 北京
文章分类
最新评论
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 635实际上,作为一个建 ... -
开源数据库Sharding技术
2011-03-02 16:14 680内容摘要:Sharding 不是一个某个特定数据库软件附 ... -
Java 开发 2.0: 使用 Hibernate Shards 进行切分
2011-03-02 16:26 612当关系数据库试图在 ... -
可扩展的分布式数据库架构
2011-03-03 14:44 657本文发表在《程序员 ... -
OLTP系统与DSS系统对比
2011-03-03 15:35 611在进行数据库系统的设计时,一个不可忽视的问题是弄清你所 ... -
Oracle高级复制机制
2011-03-10 15:48 631Oracle高级复制即可支 ... -
Oracle高级复制的同步复制的配置步骤说明
2011-03-10 15:50 800以下的文章主要讲述的是Oracle高级复制的同步复制,如 ... -
linux oracle中文乱码问题解决方法
2011-04-11 15:18 668connect system/oracle9i ... -
ubuntu下安装ocfs2
2011-07-12 14:20 933简介 一个集群文件系统能使运行在集群中所有节点并发的通过 ... -
asm下载地址
2011-07-12 16:50 790asm rpm包下载地址http://www.oracle.c ... -
oracle重要初始参数
2011-09-28 17:15 839OPEN_CURSORS session可以打开的游标最大数, ... -
SQLJ是什么?优点?
2011-10-11 09:56 874SQLJ是一种允许把静态的SQL语句以文本形式嵌入Java程序 ... -
共享池的调整与优化(Shared pool Tuning)
2011-10-11 10:53 706共享池(Shared pool)是SGA中最关键的内存片段,共 ... -
使用DBMS_SHARED_POOL包将PL/SQL大对象保存到Shared Pool
2011-10-11 16:32 694当系统在加载PL/SQL大对象时,有可能遭遇由于SharedP ... -
oracle sga相关
2011-10-12 17:08 804oracle主要影响性能的内存: Shared ... -
oracle索引分类
2011-10-17 13:31 814B-TREE INDEX,B树索引:在创建索引时他是 ... -
修改oracle redo log的大小
2011-10-17 15:53 10471.查看现在的REDO GRO ... -
本地管理表空间
2011-10-18 13:29 727本地管理表空间的好处: 1:快速,并发空间操作 ... -
Oracle表空间命令
2011-10-19 16:55 765创建立表空间 CREATE TABLESPACE ... -
Oracle 索引组织表(IOT)
2011-10-28 09:16 750索引组织表(IOT)有一种类B树的存储组织方法。普通的堆组织表 ...
相关推荐
调整oracle内存及调整表空间大小方法
有关Oracle数据库内存的分配与管理的原理及相关命令
Oracle内存分配与调整--大牛冯春培的一篇文章 文章条理清楚,讲解深入浅出,非常值得一看。
Oracle内存分配与调整,可以参考的文档
ORACLE性能调整 调整内存分配 ORACLE性能调整 调整内存分配
oracle内存分配与调整.pdforacle内存分配与调整.pdf
,拿来和大家一起分享随便看oracle内存分配oracle内存分配oracle内存分配
适合Oracle优化和性能调整,比较好的资料。
ORACLE自动内存管理和存储调整,ORACLE自动内存管理和存储调整
ORACLE内存参数调整
Oracle 的内存配置与oracle 性能优化息息相关。而且关于内存的错误,都是十分令人头疼的问题。可以说,关于内存的配置,是最影响Oracle 性能的配置。
oracle内存分配与调整
SGA+PGA最好不要超过总内存的70%,内存详细调整方案,供学习。
Oracle内存分配与调整
一个实际案例,作者着重从advisy的角度去阐述在Oracle 10g 中内存如何调整,参照哪些参数。。。。值得大家参考
ORACLE内存参数调整PPT教案.pptx
oracle实例内存(SGA和PGA)调整