orace result cache解析

  (1)   orace 11.2.0.4 在RAC数据库Dataguard切换时,出现少量数据丢失;

         解决方案:关闭result cache 功能 或升级数据库版本并安装补丁; 升级数据库至Oracle 12.1,并安装Patch 23642282

    开启result cache
    1、设置RESULT_CACHE_MODE为FORCE
    2、根据内存管理方式调整相关参数,设置RESULT_CACHE_MAX_SIZE大小
    3、检查result cache是否开启:select dbms_result_cache.status from dual;

              关闭result cache

              1、result_cache_max_result 指定不论什么单个结果集能够使用result_cache_max_size的大小(单位为百分比),

                    默觉得5,同意从1到100的值,超过这个限制的结果集会被双色至为无效;

              2、result_cache_max_size 指定用来作为结果缓存的共享池内存的大小,假设被设置为0,表示这个特性被禁用;

                    result_cache_mode 假设设置为MANUAL(这也是默认情况),仅仅有指定hint result_cache的时候才能使用结果缓存;

                    当为force的时候,全部不包括hint  no_result_cache的查询语句都会使用结果缓存,查询第二次即生效;

                    当为auto时,在11g下执行相同的SQL第三次,缓存才起作用。

                    result_cache_remote_expiration 缓存远程对象的有效期(单位为分钟),由于基于远程对象的结果集无法由于

                    远程对象的变更而自己主动地变为无效,通常默觉得0,这意味着基于远程对象的查询结果的缓存是被禁止的。

                    result_cache_max_result和result_cache_max_size是系统级别的设置,result_cache_mode

                     和result_cache_remote_expiration能够在会话级别改动。

                   影响result cache开启使用的两个参数:result_cache_mode和result_cache_max_size

                    参数有三个值:AUTO、MANUAL 和FORCE
                   (1) 设置为AUTO 时,优化程序将根据重复的执行操作确定将哪些结果存储在高速缓存中。
                   (2) 设置为MANUAL(默认值)时,必须使用RESULT_CACHE (v$sql_hint视图查看hint信息) 提示指定在高速缓存中存储特定结果。
                   (3) 设置为FORCE 时,所有结果都将存储在高速缓存中。

                   注:对于AUTO 和FORCE 设置,如果语句中包含[NO_]RESULT_CACHE 提示,则该提示优先于参数设置;

  (2)   Oracle 12.2.0.1 数据库存在缺陷,当数据库进行ADG切换时,standby

          数据库在关闭时出现ORA-600[kglpnlt]错误,导致无法正常切换;

          暂未提供解决方案;

 

原文地址:https://www.cnblogs.com/tzhyy/p/10443510.html