Oracle优化 -- 关于Database Buffer Cache相关参数DB_CACHE_SIZE的优化设置
select size_for_estimate, buffers_for_estimate ,ESTD_PHYSICAL_READ_factor,ESTD_PHYSICAL_READS from v$db_cache_advice
2 where block_size='8192' and advice_status='ON';
中,size_for_estimate表示预计的数据库高速缓冲区的大小(即:db_cache_size的值)。ESTD_PHYSICAL_READS表示预计的物理读。
当增加数据库高速缓冲区的的时候,物理读(ESTD_PHYSICAL_READS)越少,说明命中率越高。
1.优化缓冲区大小、提高服务器的命中率
db_cache_size big integer 838860800
2.查看缓冲区命中率是否需要调优.
select 1 - ((physical.value - direct.value - lobs.value) / logical.value)
"Buffer Cache Hit Ratio"
from v$sysstat physical,v$sysstat direct,v$sysstat lobs,v$sysstat logical
where physical.name = 'physical reads'
and direct.name='physical reads direct'
and lobs.name='physical reads direct (lob)'
and logical.name='session logical reads';
当命中率>90%说明命中率很高了
3。获取推荐的值
select name,size_for_estimate,v$db_cache_advice.ESTD_PHYSICAL_READS from v$db_cache_advice
where block_size='8192' and advice_status='ON';
set linesize 1000
---20100619Oracle9i数据 Solaris 9i操作系统
SQL> set linesize 1000
SQL> select size_for_estimate, buffers_for_estimate ,ESTD_PHYSICAL_READ_factor,ESTD_PHYSICAL_READS from v$db_cache_advice
where block_size='8192' and advice_status='ON';
SIZE_FOR_ESTIMATE BUFFERS_FOR_ESTIMATE ESTD_PHYSICAL_READ_FACTOR ESTD_PHYSICAL_READS
----------------- -------------------- ------------------------- -------------------
80 9925 28.9757 1436311200
160 19850 2.1053 104360120
240 29775 1.5819 78413087
320 39700 1.4262 70693980
400 49625 1.3543 67131735
480 59550 1.278 63349434
560 69475 1.1893 58954568
640 79400 1.1325 56135206
720 89325 1.0762 53347837
800 99250 1 49569438
880 109175 .7067 35030953
SIZE_FOR_ESTIMATE BUFFERS_FOR_ESTIMATE ESTD_PHYSICAL_READ_FACTOR ESTD_PHYSICAL_READS
----------------- -------------------- ------------------------- -------------------
960 119100 .3991 19784701
1040 129025 .2305 11423374
1120 138950 .1927 9552903
1200 148875 .1506 7466278
1280 158800 .1501 7438186
1360 168725 .1501 7438186
1440 178650 .1501 7438186
1520 188575 .1501 7438186
1600 198500 .1501 7438186
SIZE_FOR_ESTIMATE M 为单位:
当SIZE_FOR_ESTIMATE=80M 的时候 ESTD_PHYSICAL_READS=1436311200
当SIZE_FOR_ESTIMATE=1120M 的时候 ESTD_PHYSICAL_READS=9552903
当SIZE_FOR_ESTIMATE=1280M 的时候 ESTD_PHYSICAL_READS=7438186
之后ESTD_PHYSICAL_READS固定了
所以应该过大db_cache_size=1120M的值使得
4.修改发现DB_cache_size太大了。过大SGA区域解决
alter system set db_cache_size=1120M
--sga设置太小了导致
SQL> alter system set db_cache_size=1120M;
alter system set db_cache_size=1120M
*
ERROR 位于第 1 行:
ORA-02097: 无法修改参数,因为指定的值无效
ORA-00384: 没有足够的内存来增加高速缓存的大小
之前的值
sga_max_size big integer 1494715120
SQL>alter system set SGA_MAX_SIZE=3500M scope=spfile;
系统已更改。
重新启动与关闭解决
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 3675756336 bytes
Fixed Size 735024 bytes
Variable Size 2835349504 bytes
Database Buffers 838860800 bytes
Redo Buffers 811008 bytes
数据库装载完毕。
数据库已经打开。
查看命中率\当前只有80的满足要求
SQL> select size_for_estimate, buffers_for_estimate ,ESTD_PHYSICAL_READ_factor,ESTD_PHYSICAL_READS from v$db_cache_advice
2 where block_size='8192' and advice_status='ON';
SIZE_FOR_ESTIMATE BUFFERS_FOR_ESTIMATE ESTD_PHYSICAL_READ_FACTOR ESTD_PHYSICAL_READS
----------------- -------------------- ------------------------- -------------------
80 9925 1 1528
160 19850 1 1528
240 29775 1 1528
320 39700 1 1528
400 49625 1 1528
480 59550 1 1528
560 69475 1 1528
640 79400 1 1528
720 89325 1 1528
800 99250 1 1528
880 109175 1 1528
SIZE_FOR_ESTIMATE BUFFERS_FOR_ESTIMATE ESTD_PHYSICAL_READ_FACTOR ESTD_PHYSICAL_READS
----------------- -------------------- ------------------------- -------------------
960 119100 1 1528
1040 129025 1 1528
1120 138950 1 1528
1200 148875 1 1528
1280 158800 1 1528
1360 168725 1 1528
1440 178650 1 1528
1520 188575 1 1528
1600 198500 1 1528
命中率降低了?
SQL> select 1 - ((physical.value - direct.value - lobs.value) / logical.value)
2 "Buffer Cache Hit Ratio"
3 from v$sysstat physical,v$sysstat direct,v$sysstat lobs,v$sysstat logical
4 where physical.name = 'physical reads'
5 and direct.name='physical reads direct'
6 and lobs.name='physical reads direct (lob)'
7 and logical.name='session logical reads';
Buffer Cache Hit Ratio
----------------------
.906673167
继续缩小SGA大小
SQL>alter system set SGA_MAX_SIZE=3000M scope=spfile;
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 3155661888 bytes
Fixed Size 734272 bytes
Variable Size 2315255808 bytes
Database Buffers 838860800 bytes
Redo Buffers 811008 bytes
数据库装载完毕。
数据库已经打开。
select size_for_estimate, buffers_for_estimate ,ESTD_PHYSICAL_READ_factor,ESTD_PHYSICAL_READS from v$db_cache_advice
where block_size='8192' and advice_status='ON';
继续测试:等待30分钟之后测试
SQL> alter system set db_cache_size=1120M;
select 1 - ((physical.value - direct.value - lobs.value) / logical.value)
"Buffer Cache Hit Ratio"
from v$sysstat physical,v$sysstat direct,v$sysstat lobs,v$sysstat logical
where physical.name = 'physical reads'
and direct.name='physical reads direct'
and lobs.name='physical reads direct (lob)'
and logical.name='session logical reads';
---命中率逐渐的提高了
---半个小时之后查询命中率是98%
SQL> select 1 - ((physical.value - direct.value - lobs.value) / logical.value)
2 "Buffer Cache Hit Ratio"
3 from v$sysstat physical,v$sysstat direct,v$sysstat lobs,v$sysstat logical
4 where physical.name = 'physical reads'
5 and direct.name='physical reads direct'
6 and lobs.name='physical reads direct (lob)'
7 and logical.name='session logical reads';
Buffer Cache Hit Ratio
----------------------
.980309028
-----查询推荐的值
show parameter db_block_size
8192
select name,size_for_estimate,v$db_cache_advice.ESTD_PHYSICAL_READS from
v$db_cache_advice where block_size='8192' and advice_status='ON';
NAME SIZE_FOR_ESTIMATE ESTD_PHYSICAL_READS
-------------------- ----------------- -------------------
DEFAULT 112 9581
DEFAULT 224 9514
DEFAULT 336 9514
DEFAULT 448 9514
DEFAULT 560 9514
DEFAULT 672 9514
DEFAULT 784 9514
DEFAULT 896 9514
DEFAULT 1008 9514
DEFAULT 1120 9514
DEFAULT 1232 9514
NAME SIZE_FOR_ESTIMATE ESTD_PHYSICAL_READS
-------------------- ----------------- -------------------
DEFAULT 1344 9514
DEFAULT 1456 9514
DEFAULT 1568 9514
DEFAULT 1680 9514
DEFAULT 1792 9514
DEFAULT 1904 9514
DEFAULT 2016 9514
DEFAULT 2128 9514
DEFAULT 2240 9514
显示只要112M大小的空间就可以稳定降低ESTD_PHYSICAL_READS
alter system set db_cache_size=112M
NAME SIZE_FOR_ESTIMATE ESTD_PHYSICAL_READS
-------------------- ----------------- -------------------
DEFAULT 16 0
DEFAULT 32 0
DEFAULT 48 0
DEFAULT 64 0
DEFAULT 80 0
DEFAULT 96 0
DEFAULT 112 0
DEFAULT 128 0
DEFAULT 144 0
DEFAULT 160 0
DEFAULT 176 0
NAME SIZE_FOR_ESTIMATE ESTD_PHYSICAL_READS
-------------------- ----------------- -------------------
DEFAULT 192 0
DEFAULT 208 0
DEFAULT 224 0
DEFAULT 240 0
DEFAULT 256 0
DEFAULT 272 0
DEFAULT 288 0
DEFAULT 304 0
DEFAULT 320 0
---查看命中率
select 1 - ((physical.value - direct.value - lobs.value) / logical.value)
"Buffer Cache Hit Ratio"
from v$sysstat physical,v$sysstat direct,v$sysstat lobs,v$sysstat logical
where physical.name = 'physical reads'
and direct.name='physical reads direct'
and lobs.name='physical reads direct (lob)'
and logical.name='session logical reads';
Buffer Cache Hit Ratio
----------------------
.982795739
说明Oracle更换峰值的情况决定db_cache_size的大小。
所以设置最大峰值满足的情况。
alter system set db_cache_size=1120M;满足峰值的时候最大值
select name,size_for_estimate,v$db_cache_advice.ESTD_PHYSICAL_READS from
v$db_cache_advice where block_size='8192' and advice_status='ON';
oracle10g Solaris 10 sparc系统调整
--查
select name,size_for_estimate,v$db_cache_advice.ESTD_PHYSICAL_READS from
v$db_cache_advice where block_size='8192' and advice_status='ON';
-------------------- ----------------- -------------------
DEFAULT 128 1206647
DEFAULT 256 1067789
DEFAULT 384 987752
DEFAULT 512 965164
DEFAULT 640 913815
DEFAULT 768 893485
DEFAULT 896 867321
DEFAULT 1024 808884
DEFAULT 1152 599909
DEFAULT 1280 344618
--此时开始保持在一个稳定的读取值
alter system set db_cache_size=1196M
DEFAULT 1296 321763
NAME SIZE_FOR_ESTIMATE ESTD_PHYSICAL_READS
-------------------- ----------------- -------------------
DEFAULT 1408 285030
DEFAULT 1536 280506
DEFAULT 1664 280325
DEFAULT 1792 279816
DEFAULT 1920 266871
DEFAULT 2048 235838
DEFAULT 2176 231298
DEFAULT 2304 228483
DEFAULT 2432 224971
DEFAULT 2560 219467
--修改
alter system set db_cache_size=1196M
--查看命中率
select 1 - ((physical.value - direct.value - lobs.value) / logical.value)
"Buffer Cache Hit Ratio"
from v$sysstat physical,v$sysstat direct,v$sysstat lobs,v$sysstat logical
where physical.name = 'physical reads'
and direct.name='physical reads direct'
and lobs.name='physical reads direct (lob)'
and logical.name='session logical reads';
转载于:https://www.cnblogs.com/login2012/p/5752687.html
Oracle优化 -- 关于Database Buffer Cache相关参数DB_CACHE_SIZE的优化设置相关推荐
- oracle buffer block,8 Oracle深度学习笔记——BUFFER CACHE深入一
8.Oracle深度学习笔记--BUFFER CACHE深入一 最近项目一直和ORACLE死磕,感觉总是找不到出口,只能多看书少说话了. 先记录多少是多少吧! BUFFER CACHE在ORACLE的 ...
- Oracle性能调优之--Buffer cache 的调整与优化
Oracle性能调优之--Buffer cache 的调整与优化 Buffer Cache是SGA的重要组成部分,主要用于缓存数据块,其大小也直接影响系统的性能.当Buffer Cache过小的时候, ...
- buffer cache 深度解析
本文首先详细介绍了oracle中buffer cache的概念以及所包含的内存结构.然后结合各个后台进程(包括DBWRn.CKPT.LGWR等)深入介绍了oracle对于buffer cache的管理 ...
- mysql8.0最低需要多少内存_MySQL8.0内存相关参数介绍
本文来自读者投稿 作者:姚远 首先我们给出MySQL内存使用的计算公式: MySQL理论上使用的内存 = 全局共享内存 + max_connections×线程独享内存. 也就是:innodb_buf ...
- MySQL8.0内存相关参数介绍
MySQL8.0内存相关参数介绍 首先我们给出MySQL内存使用的计算公式: MySQL理论上使用的内存 = 全局共享内存 + max_connections×线程独享内存. 也就是:innodb_b ...
- mysql8.0最低需要多少内存_MySQL8.0内存相关参数总结
MySQL理论上使用的内存 = 全局共享内存 + max_connections×线程独享内存. 也就是:innodb_buffer_pool_size + innodb_log_buffer_siz ...
- oracle启用amm,oracle AMM、ASMM区别以及相关用法
一.相关概念解析AMM:automatic memory management(11.1才有的特性) 即让数据库完全管理SGA.PGA的大小,而对于管理员只需要设置一个总的大小(memory_targ ...
- Data Guard相关参数学习介绍
LOG_ARCHIVE_DEST_n 参数属性介绍 该参数的n在11g中为1到31,下列为参数的属性值: u AFFIRM and NOAFFIRM u ALTERNATE (not suppor ...
- Buffer Cache Hit Ratio
Solution By itself, the buffer cache hit ratio is not very meaningful except for databases with unde ...
最新文章
- (每日一题)P4128 [SHOI2006] 有色图(文末有色图!)(Polya定理)(超级详细,清晰易懂)
- [转]linux grep命令
- 条件限制select into_SQL全部知识点(夺回控制台掌控权,转义符,SELECT特定列,AND,OR,查询数值,比较运算)...
- vs文件上传失败--超过最大字符限制
- 电路板上的插头怎么拔下来_空调插头一直不拔费电吗?实测一周竟然发现了真相!...
- 性能测试测试环境与生产环境_不在生产中测试? 在生产中进行测试!
- Python绘制匀加速运动质点的速度-时间图像与位移-时间图像
- CSS Sprite精灵图如何缩放大小
- Serial Interface之I2C:关于DS1624 2线通信SDA保持时间的说明
- 4.5.1 段级保护
- 日期选择器_FPGA逻辑部分Verilog实验-选择器电路
- Premiere Pro Guru: Speed Changes Premiere Pro 大师教程之改变速度 Lynda课程中文字幕
- 注册机无法运行,显示系统资源不足,无法完成请求的服务
- 此计算机里有旧的MF驱动程序,[讲解]手动删除旧的打印机驱动程序
- java培训出来能干什么_Java培训出来一般都可以干什么工作
- 一文理清Apache Spark内存管理脉络
- 模版方法模式--旅游签证
- android:stretchcolumns=0,1,2,3,stretch_stretch是什么意思
- 明日直播:如何在RT-Thread上使用TFLite Micro实现AI相机?
- Linux Oracle dbf文件误删 恢复操作
热门文章
- amd cpu排行_最新AMD CPU排行出炉 E6版3000+夺魁
- centos 等保三级_等保测评三级整改-身份鉴别
- 主攻计算机专业英语翻译,湖师大“博导”黄振定,主攻“翻译学”
- HTML+CSS+JS实现 ❤️制作loading动画效果❤️
- java查询数组中元素的索引
- android 播放器 反交错,反交错- 视频横纹处理
- VC2010 项目的创建
- Java @SafeVarargs注解
- Java @Deprecated注解
- java - 求a+aa+aaa+aa...a之和