共享池中保留池的调整(shared_pool_reserved_size)
Posted Leshami
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了共享池中保留池的调整(shared_pool_reserved_size)相关的知识,希望对你有一定的参考价值。
--*************************************************
-- 共享池中保留池的调整(shared_pool_reserved_size)
--*************************************************
1.何谓保留池
简言之,保留一部分内存空间以备不时之需。通常情况下,Oracle会将大的内存请求分割成小的内存块来满足需求。而对于大的内
存且为连续的内存空间请求,如果在共享池中未找到,则会动用共享池中的保留池。当然,共享池在内存压力的情况下,也会使用到
保留池中的部分。保留池部分满足较大的内存需求更高效。缺省情况下,Oracle会配置较小的保留池,这部分可以用作PL/SQL或触发器
编译使用或用于装载JAVA对象的临时空间。这些分配出去的内存一旦释放后将返回给保留池。
任意大于"_shared_pool_reserved_min_alloc = 4400" 字节的连续内存分配请求,如果shared_pool中分配不能解决,且当前
shared_pool中没有可用的块能够aged out,则保留池将被使用。
2.大值对象在共享池中分配空间的顺序
a.从共享池中非保留池寻找可用空间
b.如果共享池中非保留池没有所需的可用空间,则从保留池进行分配
c.如果共享池非保留池与保留池都没有所需的空间,则一些对象需要按LRU原则aged out,然后再按a,b步骤来进行分配。
共享池的中的保留池大小不能超过共享池的50%,一般情况下建议为共享池的5%到10%。
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Solaris: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
SQL> show parameter reserved
NAME TYPE VALUE
------------------------------------ -------------------------------- ------------------------------
_shared_pool_reserved_pct integer 10
shared_pool_reserved_size big integer 512M --修改该参数来设置保留池的大小
3.保留池的视图
v$shared_pool_reserved
SELECT * from v$shared_pool_reserved;
SQL> desc v$shared_pool_reserved;
Name Null? Type
------------------------------ -------- ----------------------------
--以下字段只有当参数SHARED_POOL_RESERVED_SIZE设置了才有效
FREE_SPACE NUMBER 以上是关于共享池中保留池的调整(shared_pool_reserved_size)的主要内容,如果未能解决你的问题,请参考以下文章
与将 Web 应用程序保存在一个默认应用程序池中相比,拥有专用应用程序池的优缺点