SQL> show parameter shared_pool
NAME TYPE VALUE
------------------------------------ -------------------------------------------------- ------------------------------
shared_pool_reserved_size big integer 9227468
shared_pool_size big integer 0
------------------------------------ -------------------------------------------------- ------------------------------
shared_pool_reserved_size big integer 9227468
shared_pool_size big integer 0
共享池的保留区,默认的大小为共享池的5%,不能大于50%
SQL> select * from v$shared_pool_reserved;
FREE_SPACE AVG_FREE_SIZE FREE_COUNT MAX_FREE_SIZE USED_SPACE AVG_USED_SIZE USED_COUNT MAX_USED_SIZE REQUESTS REQUEST_MISSES LAST_MISS_SIZE MAX_MISS_SIZE REQUEST_FAILURES LAST_FAILURE_SIZE ABORTED_REQUEST_THRESHOLD ABORTED_REQUESTS LAST_ABORTED_SIZE
---------- ------------- ---------- ------------- ---------- ------------- ---------- ------------- ---------- -------------- -------------- ------------- ---------------- ----------------- ------------------------- ---------------- -----------------
9367072 212888 44 212888 0 0 0 0 0 0 0 0 0 0 2147483647 0 0
---------- ------------- ---------- ------------- ---------- ------------- ---------- ------------- ---------- -------------- -------------- ------------- ---------------- ----------------- ------------------------- ---------------- -----------------
9367072 212888 44 212888 0 0 0 0 0 0 0 0 0 0 2147483647 0 0
如果request_misses持续增大,说明小了
如果request_misses总为零,说明大了
cursor_sharing参数
1.应用中有大量的相似语句
2.由于library cache的没有命中造成效应速度下降
语句完全相同才共享内存(默认)
EXACT
部分相同有可能共享(选择)
部分相同就共享(有潜在的问题)
force
建议:
最好保持该参数为EXACT,而是通过修改程序的办法来共享SQL
V$SHARED_POOL_RESERVED视图 :存放了共享池保留区的统计信息
--以下字段只有当参数SHARED_POOL_RESERVED_SIZE设置了才有效
select a.FREE_SPACE,--保留区的空闲空间数。
a.AVG_FREE_SIZE,--保留区的空闲空间平均数。
a.FREE_COUNT,--保留区的空闲内存块数
a.MAX_FREE_SIZE,--最大的保留区空闲空间数
a.USED_SPACE,--保留区使用空间数
a.AVG_USED_SIZE,--保留区使用空间平均数
a.USED_COUNT,--保留区使用内存块数
a.MAX_USED_SIZE,--最大保留区使用空间数
a.REQUESTS,--请求再保留区查找空闲内存块的次数
a.REQUEST_MISSES,--无法满足查找保留区空闲内存块请求,需要从LRU列表中清出对象的次数
a.LAST_MISS_SIZE,--请求的内存大小,这次请求是最后一次需要从LRU列表清出对象来满足的请求
--以下字段无论参数SHARED_POOL_RESERVED_SIZE是否设置了都有效
a.MAX_MISS_SIZE,--所有需要从LRU列表清出对象来满足的请求中的内存最大大小
a.REQUEST_FAILURES,--没有内存能满足的请求次数(导致4031错误的请求)
a.LAST_FAILURE_SIZE,--没有内存能满足的请求所需的内存大小(导致4031错误的请求)
a.ABORTED_REQUEST_THRESHOLD,--不清出对象的情况下,导致4031错误的最小请求大小
a.ABORTED_REQUESTS,--不清出对象的情况下,导致4031错误的请求次数
a.LAST_ABORTED_SIZE--不清出对象的情况下,最后一次导致4031错误的请求大小
from V$SHARED_POOL_RESERVED a
可以根据后面4个字段值来决定如何设置保留区的大小以避免4031错误的发生
--以下字段只有当参数SHARED_POOL_RESERVED_SIZE设置了才有效
select a.FREE_SPACE,--保留区的空闲空间数。
a.AVG_FREE_SIZE,--保留区的空闲空间平均数。
a.FREE_COUNT,--保留区的空闲内存块数
a.MAX_FREE_SIZE,--最大的保留区空闲空间数
a.USED_SPACE,--保留区使用空间数
a.AVG_USED_SIZE,--保留区使用空间平均数
a.USED_COUNT,--保留区使用内存块数
a.MAX_USED_SIZE,--最大保留区使用空间数
a.REQUESTS,--请求再保留区查找空闲内存块的次数
a.REQUEST_MISSES,--无法满足查找保留区空闲内存块请求,需要从LRU列表中清出对象的次数
a.LAST_MISS_SIZE,--请求的内存大小,这次请求是最后一次需要从LRU列表清出对象来满足的请求
--以下字段无论参数SHARED_POOL_RESERVED_SIZE是否设置了都有效
a.MAX_MISS_SIZE,--所有需要从LRU列表清出对象来满足的请求中的内存最大大小
a.REQUEST_FAILURES,--没有内存能满足的请求次数(导致4031错误的请求)
a.LAST_FAILURE_SIZE,--没有内存能满足的请求所需的内存大小(导致4031错误的请求)
a.ABORTED_REQUEST_THRESHOLD,--不清出对象的情况下,导致4031错误的最小请求大小
a.ABORTED_REQUESTS,--不清出对象的情况下,导致4031错误的请求次数
a.LAST_ABORTED_SIZE--不清出对象的情况下,最后一次导致4031错误的请求大小
from V$SHARED_POOL_RESERVED a
可以根据后面4个字段值来决定如何设置保留区的大小以避免4031错误的发生
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26700801/viewspace-766654/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26700801/viewspace-766654/