zoukankan      html  css  js  c++  java
  • Oracle 11g 的server结果缓存result_cache_mode

      对于常常要查的结果集,返回少量记录,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管理缓存。

  • 相关阅读:
    iOS必备知识点
    stringByReplacingOccurrencesOfString
    iPhone X 设计适配指南 & iOS 11 新特性
    block与property
    swift开发笔记04
    category重写系统方法的调用顺序是怎么样的?
    Error: Chunk.entry was removed. Use hasRuntime()错误解决
    李阳音标速成MP3文本
    JavaScript权威指南(第6版)(中文版)笔记
    Idea检入boss项目
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/3854583.html
Copyright © 2011-2022 走看看