共享池中保留池的调整(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.如果共享池非保留池保留池都有所需的空一些象需要按LRUaged 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  -->保留的空间数

     AVG_FREE_SIZE                NUMBER  -->保留的空平均

     FREE_COUNT                   NUMBER  -->保留的空闲内块数

     MAX_FREE_SIZE                NUMBER  -->最大的保留间数

     USED_SPACE                   NUMBER  -->保留使用空间数

     AVG_USED_SIZE                NUMBER  -->保留使用空平均

     USED_COUNT                   NUMBER  -->保留使用块数

     MAX_USED_SIZE                NUMBER  -->最大保留使用空间数

     REQUESTS                     NUMBER  -->求在保留区查找空闲内的次

     REQUEST_MISSES               NUMBER  -->无法找保留闲内块请求,需要LRU列表中象的次

     LAST_MISS_SIZE               NUMBER  -->求的存大小,求是最后一次需要LRU列表来满足的

     MAX_MISS_SIZE                NUMBER  -->所有需要LRU列表来满足的求中的存最大大小

    

     --以下字段无论参数SHARED_POOL_RESERVED_SIZE是否置了都有效

     REQUEST_FAILURES             NUMBER  -->存能足的求次4031错误求)

     LAST_FAILURE_SIZE            NUMBER  -->存能足的求所需的存大小(4031错误求)

     ABORTED_REQUEST_THRESHOLD    NUMBER  -->象的情下,4031错误的最小求大小

     ABORTED_REQUESTS             NUMBER  -->象的情下,4031错误求次

     LAST_ABORTED_SIZE            NUMBER  -->象的情下,最后一次4031错误求大小

     --可以根据后面4字段值来决定如何置保留的大小以避免4031错误

   

        SQL> select requests,request_misses,request_failures,last_failure_size,aborted_request_threshold ab_re_th,

          2  aborted_requests,last_aborted_size lst_ab_sz

          3  from v$shared_pool_reserved;

       

          REQUESTS REQUEST_MISSES REQUEST_FAILURES LAST_FAILURE_SIZE   AB_RE_TH ABORTED_REQUESTS  LST_AB_SZ

        ---------- -------------- ---------------- ----------------- ---------- ---------------- ----------

                 1              0              542              4112 2147483647                0          0

    

4.保留池整策略

    a.根据视图v$shared_pool_reserved 来查看保留池是否

        SQL> select free_space,free_count,used_space,avg_used_size from v$shared_pool_reserved;

   

        FREE_SPACE FREE_COUNT USED_SPACE AVG_USED_SIZE

        ---------- ---------- ---------- -------------

         505926544        347   14618016    5826.23196

        

    b.使用包dbms_shared_pool aborted_request_threshold 来调阙值

    c.修改参数shared_pool_reserved_size

   

        alter system set shared_pool_reserved_size=integer [K | M | G]

 

            如果shared_pool_reserved_size参数值设置的太小,则视图v$shared_pool_reservedrequest_failures值将大于零

        增加,即存失的次数会增加,解法是增加保留池的大小,相的增大共享池的大小。

 

            共享池shared_pool_size太小视图v$shared_pool_reserved也可以表明参数shared_pool_size值设置的小。即

        视图v$shared_pool_reservedrequest_failures大于零或持增加。

       

            如果定了保留池,shared_pool_size不能增加的情��,可以shared_pool_reserved_size的大小。

            如果未定保留池,而request_failures大于零或持增加,增加共享池的大小。

 

    d.保留池

        下列两种存在,保留池可能

            request_misses终为零,且有持增加

            free_memory大于等于保留池的50%

 

    e.下面的表用于判如何整保留池的空

 

    IF Request_failures    Conjuction  Condition                                      Action

    -------------------    ----------  ----------------                               --------------

     >0 and increasing        AND      Request_misses>0                               Increase shared_pool_reserved_size

     >0 and increasing        AND      Free_memory>=50% of shared_pool_reserved_size  Increase shared_pool_size

     =0                       OR       Free_memory>=50% of shared_pool_reserved_size  Decrease shared_pool_reserved_size

 

 

5.保留池的几重要参数

    col ksppinm format a54

    col ksppstvl format a54

    SELECT KSPPINM, KSPPSTVL

    FROM X$KSPPI PI, X$KSPPCV CV

    WHERE CV.INDX = PI.INDX

    AND PI.KSPPINM LIKE '\_%' ESCAPE '\'                                              -- '--

    AND PI.KSPPINM LIKE '%&Para%';                            

   

   

    KSPPINM                                                KSPPSTVL

    ------------------------------------------------------ ------------------------------------------------------

    _shared_pool_reserved_pct                              10

    _shared_pool_reserved_min_alloc                        4400

   

    SQL> show parameter reserved

   

    NAME                                 TYPE                             VALUE

    ------------------------------------ -------------------------------- ------------------------------

    _shared_pool_reserved_pct            integer                          10

    shared_pool_reserved_size            big integer                      512M       

相关内容