对于常常要查的结果集,返回少量记录,server端是能够缓存的,结果集保存在共享池中,假设是绑定变量,绑定变量的值也要一样。

SQL> show parameter result_cache

NAME                                 TYPE        VALUE

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

client_result_cache_lag              big integer 3000

client_result_cache_size             big integer 0

result_cache_max_result              integer     5

result_cache_max_size                big integer 33440K 

result_cache_mode                    string      manual

result_cache_remote_expiration       integer     0

--result_cache_max_result 指定不论什么单个结果集能够使用result_cache_max_size的大小(单位为百分比),默觉得5,同意从1到100的值,超过这个限制的结果集会被双色至为无效。

--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能够在会话级别改动。

SQL> alter
system set result_cache_mode=force

SQL>
SELECT COUNT(1)

  2    FROM GG_DISTRIBUTION W

  3   WHERE W.DATA_AREA LIKE '03' || '%'

  4     AND W.CREATE_DATE > TO_DATE('2013-01-01', 'yyyy-GG-dd');

已用时间:  00: 00: 22.48

运行计划

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

Plan hash value: 3923546474

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

| Id  | Operation                 | Name            | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |

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

|   0 | SELECT STATEMENT          |                 |     1 |    14 |   106K  (1)| 00:24:46 |       |       |

|   1 |  SORT AGGREGATE           |                 |     1 |    14 |            |          |       |       |

|   2 |   PARTITION RANGE ALL     |                 |  2173K|    29M|   106K  (1)| 00:24:46 |     1 |     2 |

|   3 |    PARTITION LIST ITERATOR|                 |  2173K|    29M|   106K  (1)| 00:24:46 |   KEY |   KEY |

|*  4 |     TABLE ACCESS FULL     | GG_DISTRIBUTION |  2173K|    29M|   106K  (1)| 00:24:46 |     1 |    48 |

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

Predicate Information (identified by operation id):

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

   4 - filter("W"."CREATE_DATE">TO_DATE(' 2013-01-01 00:00:00', 'syyyy-GG-dd hh24:mi:ss') AND

              "W"."DATA_AREA" LIKE '03%')

统计信息

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

          0  recursive calls

          0  db block gets

     280123  consistent gets

     263679  physical reads

          0  redo size

        339  bytes sent via SQL*Net to client

        337  bytes received via SQL*Net from client

          2  SQL*Net roundtrips to/from client

          0  sorts (memory)

          0  sorts (disk)

          1  rows processed

          

SQL> /

已用时间:  00: 00: 00.11

运行计划

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

Plan hash value: 3923546474

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

| Id  | Operation                  | Name                       | Rows  | Bytes | Cost (%CPU)| Time  | Pstart| Pstop |

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

|   0 | SELECT STATEMENT           |                            |     1 |    14 |   106K  (1)| 00:24:46 |       |       |

|   1 |  RESULT CACHE              | 0mr1089p1wxv3919raqyvtwtsv |       |       |            |       |  |       |

|   2 |   SORT AGGREGATE           |                            |     1 |    14 |            |       |  |       |

|   3 |    PARTITION RANGE ALL     |                            |  2173K|    29M|   106K  (1)| 00:24:46 |     1 |     2 |

|   4 |     PARTITION LIST ITERATOR|                            |  2173K|    29M|   106K  (1)| 00:24:46 |   KEY |   KEY |

|*  5 |      TABLE ACCESS FULL     | GG_DISTRIBUTION            |  2173K|    29M|   106K  (1)| 00:24:46 |     1 |    48 |

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

Predicate Information (identified by operation id):

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

   5 - filter("W"."CREATE_DATE">TO_DATE(' 2013-01-01 00:00:00', 'syyyy-GG-dd hh24:mi:ss') AND "W"."DATA_AREA"

              LIKE '03%')

Result Cache Information (identified by operation id):

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

   1 - column-count=1; dependencies=(LCAM_TEST.GG_DISTRIBUTION); attributes=(single-row); parameters=(nls); name="SELECT COUNT(1)

  FROM GG_DISTRIBUTION W

 WHERE W.DATA_AREA LIKE '03' || '%'

   AND W.CREATE_DATE > TO_DATE('2013-01-01', 'yyyy-"

统计信息

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

          1  recursive calls

          0  db block gets

          0  consistent gets

          0  physical reads

          0  redo size

        339  bytes sent via SQL*Net to client

        337  bytes received via SQL*Net from client

          2  SQL*Net roundtrips to/from client

          0  sorts (memory)

          0  sorts (disk)

          1  rows processed

能够依据RESULT
CACHE=0mr1089p1wxv3919raqyvtwtsv找到其缓存的信息。

SQL>
select s.STATUS,

           s.CREATION_TIMESTAMP,

           s.BUILD_TIME,

           s.ROW_COUNT,

           s.SCAN_COUNT

      from v$result_cache_objects s

     where cache_id = '0mr1089p1wxv3919raqyvtwtsv';

STATUS    CREATION_TIMES BUILD_TIME  ROW_COUNT SCAN_COUNT

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

Published 20-6月 -14            700          1         26

结果缓存的限制:

当查询语句使用非确定性函数、序列号和暂时表的时候不能被缓存。

查询语句可能会造成数据不一致的时候。

引用到数据字典视图的查询语句不能缓存。

能够使用dbms_result_cache管理缓存。

Oracle 11g 的server结果缓存result_cache_mode的更多相关文章

  1. SQL SERVER 2008向ORACLE 11G迁移示例

    来源于:http://www.cnblogs.com/hiizsk/ 由SQL SERVER 2008向ORACLE 11G迁移过程记录之一-表 使用Oracle Sql Developer将SQL ...

  2. Oracle 11G R2 在windows server 2008 64位安装时提示:无法在windows "开始"菜单或桌面上创建项

    错误代码及解释:  在windows server 2008 64 位操作系统中安装 oracle 11G R2 64位 版本时提示:无法在windows "开始"菜单或桌面上创建 ...

  3. 使用Oracle Sql Developer将SQL SERVER 2008数据库移植到Oracle 11g

    ORACLE官方提供的Sql Developer自带的Oracle Migration Workbench. 什么是Oracle SQL Developer?在官方页面上,是这样介绍它的: Oracl ...

  4. 详解Windows Server 2008 R2下安装Oracle 11g

    本篇文章转载 http://www.it165.net/database/html/201212/3385.html 一.安装前的准备工作: 1. 修改计算机名: 服务器的计算机名称对于登录到Orac ...

  5. Oracle 11g服务器安装详细步骤——图文教程(系统 windows server 2012 R2)

    Oracle 11g服务器安装的相关问题,下面小编就带大家一起来下载.安装. 方法/步骤 1 大家可以根据自己的操作系统是多少位(32位或64位)的,到官网下载相应的安装程序,如下图所示. 有一点需要 ...

  6. Windows Server 2008 R2 64位操作系统安装Oracle 11g 64位数据库,在客户终端上安装Oracle 11g 32位,才能安装P/L Sql Developer并配置

    1.下载Oracle 11g R2 for Windows的版本 下载地址: http://www.oracle.com/technetwork/database/enterprise-edition ...

  7. oracle 11g 之 result cache

    oracle 11g 之 result cache 今天是2013-10-12,打算最近时间研究一下shared pool的相关原理以及awr报告分析.今天学习一下在oracle 11g shared ...

  8. Oracle 11g新特性

    文章转自网络 Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(I ...

  9. Oracle 11g RAC features

    <一,> oracle 11g r2 RAC提供了以下功能: 高可用:shared-everything 模式保证了单节点的故障不会停止服务,集群中的其他节点将快速接管 可扩展性:多节点分 ...

随机推荐

  1. 服务端NETTY 客户端非NETTY处理粘包和拆包的问题

    之前为了调式和方便一直没有处理粘包的问题,今天专门花了时间来搞NETTY的粘包处理,要知道在高并发下,不处理粘包是不可能的,数据流的混乱会造成业务的崩溃什么的我就不说了.所以这个问题 在我心里一直是个 ...

  2. hdu 4676 Sum Of Gcd 莫队+数论

    题目链接 给n个数, m个询问, 每个询问给出[l, r], 问你对于任意i, j.gcd(a[i], a[j]) L <= i < j <= R的和. 假设两个数的公约数有b1, ...

  3. cocos2d-x -------之笔记篇 3D动作说明

    CCShaky3D::create(时间,晃动网格大小,晃动范围,Z轴是否晃动);    //创建一个3D晃动的效果 CCShakyTiles3D::create(时间,晃动网格大小,晃动范围,Z轴是 ...

  4. uvalive5810 uva12368 Candles

    题意:每组数据给出n个数,每个数在1-100,问组成这些数的蜡烛的权值的最小值.权值=把选的蜡烛从大到小排列组成的数 组成方式:比如有1 3两个蜡烛 可以组成13(1和3)或4(1+3) 只有一个加号 ...

  5. java学习之匿名内部类与包装类

    匿名内部类: 所谓匿名内部类,顾名思义指的就是定义在类内部的匿名类,现有的spring框架开发以及java图形界面都经常用到匿名内部类. 下面来看一个代码: interface A{ public v ...

  6. 字符串比较必须使用strcmp

    char s1[]="this" char *s2 = "this" if(s1=="this"){ printf("s1 is ...

  7. nodejs的url模块中的resolve()的用法总结

    var url = require('url'); var a = url.resolve('/one/two/three', 'four') , b = url.resolve('http://ex ...

  8. 关于json文本数据的一些使用方法

    1.对象的存取 如果是对象的存取,可能需要序列化和反序列化对象的属性. NSDictionary params = @{@"hello":@"world"}; ...

  9. Billboard(线段树)

    Billboard Time Limit: 20000/8000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  10. php导出CSV时,超长数字精度丢失问题与前导0的字符串丢失0的问题解决

    php生成的CSV有时候会遇到两个特殊情况: 1.输出的字段中,含有超长数字(18位的数字)比方身份证:122121197410180016,就算输出时字段加上"",还是会被识别成 ...