SHARED_POOL_RESERVED_SIZE参数的设置及作用 -ZHUANZAI
还有一个参数是需要提及的:shared_pool_reserved_size。该参数指定了保留的共享池空间,用于满足将来的大的连续的共享池空间请求。当共享池出现过多碎片,请求大块空间会导致Oracle大范围的查找并释放共享池内存来满足请求,由此可能会带来较为严重的性能下降,设置合适的shared_pool_reserved_size参数,结合_shared_pool_reserved_min_alloc参数可以用来避免由此导致的性能下降。
这个参数理想值应该大到足以满足任何对RESERVED LIST的内存请求,而无需数据库从共享池中刷新对象。这个参数的缺省值是shared_pool_size的5%,通常这个参数的建议值为shared_pool_size参数的10%~20%大小,最大不得超过shared_pool_size的50%。
同样地,在trace文件中,可以找到关于保留列表(RESERVED LIST)的内存信息:
RESERVED FREE LISTS:
Reserved bucket 0 size=16
Reserved bucket 1 size=4400
Reserved bucket 2 size=8204
Reserved bucket 3 size=8460
Reserved bucket 4 size=8464
Reserved bucket 5 size=8468
Reserved bucket 6 size=8472
Reserved bucket 7 size=9296
Reserved bucket 8 size=9300
Reserved bucket 9 size=12320
Reserved bucket 10 size=12324
Reserved bucket 11 size=16396
Reserved bucket 12 size=32780
Reserved bucket 13 size=65548
Chunk 41000050 sz= 212888 R-free " "
Chunk 41400050 sz= 212888 R-free " "
Chunk 41800050 sz= 212888 R-free " "
Chunk 41c00050 sz= 212888 R-free " "
Chunk 42000050 sz= 212888 R-free " "
Chunk 42400050 sz= 212888 R-free " "
Chunk 42800050 sz= 212888 R-free " "
Chunk 42c00050 sz= 212888 R-free " "
Chunk 43000050 sz= 212888 R-free " "
Chunk 43400050 sz= 212888 R-free " "
Chunk 43800050 sz= 212888 R-free " "
Chunk 44000050 sz= 212888 R-free " "
Total reserved free space = 2554656
_shared_pool_reserved_min_alloc这个参数的值控制保留内存的使用和分配。如果一个足够尺寸的大块内存请求在共享池空闲列表(FREE LIST)中没能找到,内存就从保留列表(RESERVED LIST)中分配一块比这个值大的空间。
在不同的版本中,该参数的缺省值一直都是,以下输出来自Oracle 11gR1版本:
sys@CCDB> @GetHidPar
Enter value for par: shared_pool_reserved_min_alloc
old 4: AND x.ksppinm LIKE '%&par%'
new 4: AND x.ksppinm LIKE '%shared_pool_reserved_min_alloc%'
NAME VALUE DESCRIB
----------------------------------- ---------- ----------------------------------------------------------------------
_shared_pool_reserved_min_alloc minimum allocation size in bytes for reserved area of shared pool
这个参数默认的值对于大多数系统来说都足够了。如果系统经常出现ORA-04031错误都是请求大于4400的内存块,那么就可能需要增加shared_pool_reserved_size参数设置。
而如果主要的引发LRU合并、老化并出现ORA-04031错误的内存请求在4100~4400bytes之间,那么降低_shared_pool_reserved_min_alloc同时适当增大SHARED_POOL_RESERVED_SIZE参数值通常会有所帮助。设置_shared_pool_reserved_min_alloc=4100可以增加Shared Pool成功满足请求的概率。需要注意的是,这个参数的修改应对结合Shared Pool Size 和 Shared Pool Reserved Size的修改。设置_shared_pool_reserved_min_alloc=4100是经过证明的可靠方式,不建议设置更低。
查询v$shared_pool_reserved视图可以用于判断共享池问题的引发原因,以下查询来自一个业务系统,注意系统出现过2次的请求失败,最后一次请求的内存块大小是3896 Bytes。由于这个环境没有报ORA-04031错误,所以不对_shared_pool_reserved_min_alloc参数进行修改。
winks@CCDB> select free_space,avg_free_size,used_space,avg_used_size,request_failures,last_failure_size
2 from v$shared_pool_reserved;FREE_SPACE AVG_FREE_SIZE USED_SPACE AVG_USED_SIZE REQUEST_FAILURES LAST_FAILURE_SIZE
---------- ------------- ---------- ------------- ---------------- -----------------
44406648 727977.836 86640 1420.32787 2 3896
如果request_failures > 0 并且 last_failure_size > _shared_pool_reserved_min_alloc,那么ORA-04031错误就可能是因为共享池保留空间缺少连续空间所致。要解决这个问题,可以考虑加大_shared_pool_reserved_min_alloc来降低缓冲进共享池保留空间的对象数目,并增大shared_pool_reserved_size 和 shared_pool_size来加大共享池保留空间的可用内存。
如果request_failures > 0 并且 last_failure_size < _shared_pool_reserved_min_alloc,那么是因为在库高速缓冲缺少连续空间导致ORA-04031错误。
SHARED_POOL_RESERVED_SIZE参数的设置及作用 -ZHUANZAI的更多相关文章
- rabbitmq qos prefetch count的设置与作用
因为原来使用了MQ作为rpc机制,随着客户交易量越来越大,很多服务器推送行情的压力很大,最近打算重写为批量模式,又重新看了下qos和prefetch设置的作用以确定优化的具体细节. 消费者在开启ack ...
- 深入解析Oracle 10g中SGA_MAX_SIZE和SGA_TARGET参数的区别和作用
原文链接:http://m.blog.csdn.net/blog/aaron8219/40037005 SGA_MAX_SIZE是从9i以来就有的作为设置SGA大小的一个参数,而SGA_TARGET则 ...
- LR中日志参数的设置
LR中日志参数的设置 1.Run-Time Setting日志参数的设置 在loadrunner的vuser菜单下的Run-Time Setting的General的LOG选项中可以对在执行脚本时Lo ...
- 关于MySql链接url参数的设置 专题
报错: Establishing SSL connection without server's identity verification is not recommended. According ...
- [转载]神经网络偏置项(bias)的设置及作用
[转载]神经网络偏置项(bias)的设置及作用 原文来自:https://www.cnblogs.com/shuaishuaidefeizhu/p/6832541.html 1.什么是bias? 偏置 ...
- SSIS变量属性中EvaluateAsExpression设置的作用
我们在做SqlServer SSIS包开发的时候,经常会用到SSIS的变量,我们可以使用和修改SSIS变量的值使得SSIS包的逻辑更灵活,如下图所示: 在定义SSIS变量的时候可以使用固定值(如上图中 ...
- in_array 的第三个参数strict设置为 true
var_dump(in_array(0, array('s' )); 这句话的结果是bool(true). 因为in_array会将0 和's' 进行比较,0是number类型,'s'是string类 ...
- 如何把in_array 的第三个参数strict设置为 true
var_dump(in_array(0, array('s' )); 这句话的结果是bool(true). 因为in_array会将0 和's' 进行比较,0是number类型,'s'是string类 ...
- web.xml中servlet初始化参数的设置
<context-param><param-name>param1</param-name><param-value>value1</param- ...
随机推荐
- 控制台程序实现利用CRM组织服务和SqlConnection对数据库中数据的增删改查操作
一.首先新建一个控制台程序.命名为TestCol. 二.打开App.config在里面加入,数据库和CRM连接字符串 <connectionStrings> <add name=&q ...
- Innodb 存储引擎(转)
第一部分:线程 Innodb是一个多线程的,各个线程负责不同的任务.主要的线程有:Master Thread.IO Thread.Purge Thread.Page Cleaner Thread. 一 ...
- The connection to adb is down, and a severe error has occured.
启动android模拟器时.有时会报The connection to adb is down, and a severe error has occured.的错误.在网友说在任务管理器上把所有ad ...
- angularjs webstorm 单元测试 Package.json
Package.json小结 生成package.json 定位到想放置package.json的目录,运行npm init,根据提示就可以生成package.json文件,其中test comman ...
- 【Oracle学习笔记-4】内连接和外连接的区别
参考链接(非常棒) 摘要 下面主要以两个例子进行说明: 例子1: 表A结构如下: select * from A | 表B结构如下: select * from B 两个表要做连接,就必须有个连接字段 ...
- 给windows的VM更换网卡到VMNET3从E1000
1. Login to vCenter via vSphere client. go to the vm 2. create a 1G new disk(SCSI 1:2) for the VM te ...
- 服务器判断客户端为移动端还是PC端
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/html&quo ...
- C#Winfrom系统打印机调用/设置默认打印机
实现如下效果: 实现方式如下: using System;using System.Drawing.Printing;using System.Runtime.InteropServices;usin ...
- asp.net中Respons.Write()的用法
很多时候,我们为了是页面的传输速率更高.很自然回去选择脚本和ajax结合进行传值,在传值如要向页面回传数据时,可能只有一次也会是多次.一次的情况下我们可以很好的用Respons.End()方法来截取我 ...
- 55. Jump Game
Given an array of non-negative integers, you are initially positioned at the first index of the arra ...