--*************************************************

-- 共享池中保留池的(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       


6. 快捷参考

性能请参

    ​Oracle 硬解析与软解析

    共享池的与优(Shared pool Tuning)​

    ​Buffer cache 与优(一)

    ​Oracle (caching table)的使用


ORACLE体系结构请参

    ​Oracle 表空间与数据文件

    ​Oracle 文件

    ​Oracle 参数文件

    ​Oracle 机重做日志文件(ONLINE LOG FILE)​

    ​Oracle 控制文件(CONTROLFILE)

    ​Oracle 归档日志

    ​Oracle (ROLLBACK)和撤(UNDO)​

    ​Oracle 库实启动关闭过

    ​Oracle 10g SGA 的自化管理

    ​Oracle 例和Oracle(Oracle体系结构)​


关闪回特性请参

    ​Oracle 回特性(FLASHBACK DATABASE)​

    ​Oracle 回特性(FLASHBACK DROP & RECYCLEBIN)​

    ​Oracle 回特性(Flashback Query、Flashback Table)

    ​Oracle 回特性(Flashback Version、Flashback Transaction)


基于用管理的备份备份请参

    ​Oracle 备份

    ​Oracle 热备份

    ​Oracle 备份复概

    ​Oracle 例恢

    ​Oracle 基于用管理恢​(详细描述了介及其)

    ​SYSTEM 表空管理及备份

    ​SYSAUX表空管理及恢


RMAN备份复与管理请参

    ​RMAN 述及其体系结构

    ​RMAN 配置、管理

    ​RMAN 备份详

    ​RMAN

    ​RMAN catalog 建和使用

    基于catalog RMAN脚本

基于catalog 的RMAN 备份与

使用RMAN迁移文件系统数据库到ASM​

    ​RMAN 备份困惑(使用plus archivelog)​


ORACLE故障请参

    ​ORA-32004 错误处

    ​ORA-01658 错误

    ​CRS-0215 错误处

    ​ORA-00119,ORA-00132 错误处

    又一例SPFILE错误导无法启动

    对参数FAST_START_MTTR_TARGET = 0 解及

    ​SPFILE 错误导无法启动(ORA-01565)​


ASM请参

    ASM例及ASM

    ​ASM 、目的管理

    使用 ASMCMD 工具管理ASM及文件


SQL/PLSQL请参

    ​SQLPlus 常用命令

    替代SQL*Plus

    使用Uniread实现SQLplus功能

    ​SQL -->SELECT 查询

    ​SQL --> NEW_VALUE 的使用

    ​SQL --> 集合(UNION UNION ALL)

    ​SQL --> 常用函

    ​SQL --> 视图(CREATE VIEW)

    ​SQL --> 建和管理表

    ​SQL --> 多表查询

    ​SQL --> 过滤和排序

    ​SQL --> 查询

    ​SQL --> 组与

    ​SQL --> 次化查询(START BY ... CONNECT BY PRIOR)

    ​SQL --> ROLLUPCUBE算符实现数汇总

    ​PL/SQL -->

    ​PL/SQL --> (Exception)

    ​PL/SQL --> 言基

    ​PL/SQL --> 流程控制

    ​PL/SQL --> PL/SQL记录

    ​PL/SQL --> 包的管理

    ​PL/SQL --> 式游(SQL%FOUND)

    ​PL/SQL --> 包重、初始化

    ​PL/SQL --> DBMS_DDL包的使用

    ​PL/SQL --> DML 触发

    ​PL/SQL --> INSTEAD OF 触发

    ​PL/SQL --> 储过

    ​PL/SQL -->

    ​PL/SQL --> 动态SQL

    ​PL/SQL --> 动态SQL的常见错误