转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/12657479

正确答案:B

 

Oracle 11g 新特性:Result Cache ,它是存在SHARED POOL中,作用SQL提高性能,如果结果缓存起来,下次查询直接就返回数据,无须再解析、执行SQL了。大大提高了性能。但缺点是需要在共享池留一块空间出来。

结果集缓存是Oracle 11g新引入的功能,除了可以在服务器端缓存结果之外,还可以在客户端缓存结果。服务器端的Result Cache Memory由两部分组成。

■SQL Query Result Cache:存储SQL查询的结果集。

■PL/SQL Function Result Cache:用于存储过程PL/SQL函数的结果集。

Oracle通过一个新引入初始化参数来控制该Cache的大小(result_cache_max_size)

  1. sys@OCM> show parameter result
  2.  
  3. NAME TYPE VALUE
  4. ------------------------------------ ----------- ------------------------------
  5. client_result_cache_lag big integer 3000
  6. client_result_cache_size big integer 0
  7. result_cache_max_result integer 5
  8. result_cache_max_size big integer 3360K
  9. result_cache_mode string MANUAL
  10. result_cache_remote_expiration integer 0

如果result_cache_max_size=0则表示禁用该特性。参数result_cache_max_result则控制单个缓存结果可以占总的Server Result Cache大小的百分比。

上面显示的参数中result_cache_mode用于控制Server Result Cache的模式,该参数有3个可选设置。

● result_cache_mode=AUTO:则优化器自动判断是否将查询结果缓存。

●result_cache_mode=MANUAL:则需要通过查询提示来告诉优化器是否缓存结果。

●result_cache_mode=FORCE:则尽可能地缓存查询结果,通过提示:no_result_cache可以拒绝缓存。

Ok,下面我们来测Result Cache的性能。

(1)当前我的result_cache_mode为manual,如上所说result_cache_mode=MANUAL:则需要通过查询提示来告诉优化器是否缓存结果。

  1. sys@OCM> show parameter result
  2.  
  3. NAME TYPE VALUE
  4. ------------------------------------ ----------- ------------------------------
  5. client_result_cache_lag big integer 3000
  6. client_result_cache_size big integer 0
  7. result_cache_max_result integer 5
  8. result_cache_max_size big integer 3360K
  9. result_cache_mode string MANUAL
  10. result_cache_remote_expiration integer 0

(2)在没有缓存结果的况情下的测试

  1. gyj@OCM> set autot traceonly;
  2. gyj@OCM> select count(*) from t1;
  3.  
  4. Execution Plan
  5. ----------------------------------------------------------
  6. Plan hash value: 3724264953
  7.  
  8. -------------------------------------------------------------------
  9. | Id | Operation | Name | Rows | Cost (%CPU)| Time |
  10. -------------------------------------------------------------------
  11. | 0 | SELECT STATEMENT | | 1 | 3 (0)| 00:00:01 |
  12. | 1 | SORT AGGREGATE | | 1 | | |
  13. | 2 | TABLE ACCESS FULL| T1 | 2 | 3 (0)| 00:00:01 |
  14. -------------------------------------------------------------------
  15.  
  16. Statistics
  17. ----------------------------------------------------------
  18. 1 recursive calls
  19. 0 db block gets
  20. 6 consistent gets
  21. 0 physical reads
  22. 0 redo size
  23. 526 bytes sent via SQL*Net to client
  24. 520 bytes received via SQL*Net from client
  25. 2 SQL*Net roundtrips to/from client
  26. 0 sorts (memory)
  27. 0 sorts (disk)
  28. 1 rows processed
  1. gyj@OCM> set autot traceonly;
  2. gyj@OCM> select count(*) from t1;
  3.  
  4. Execution Plan
  5. ----------------------------------------------------------
  6. Plan hash value: 3724264953
  7.  
  8. -------------------------------------------------------------------
  9. | Id | Operation | Name | Rows | Cost (%CPU)| Time |
  10. -------------------------------------------------------------------
  11. | 0 | SELECT STATEMENT | | 1 | 3 (0)| 00:00:01 |
  12. | 1 | SORT AGGREGATE | | 1 | | |
  13. | 2 | TABLE ACCESS FULL| T1 | 2 | 3 (0)| 00:00:01 |
  14. -------------------------------------------------------------------
  15.  
  16. Statistics
  17. ----------------------------------------------------------
  18. 1 recursive calls
  19. 0 db block gets
  20. 6 consistent gets
  21. 0 physical reads
  22. 0 redo size
  23. 526 bytes sent via SQL*Net to client
  24. 520 bytes received via SQL*Net from client
  25. 2 SQL*Net roundtrips to/from client
  26. 0 sorts (memory)
  27. 0 sorts (disk)
  28. 1 rows processed

不管你执行几次select  count(*)from t1;,它的consistent gets值都为6.从下面可以看出逻辑读是6(逻辑读= 当前读db block gets+一致性读consistent gets)

(2)在有缓存结果的况情下的测试

  1. gyj@OCM> select /*+ result_cache */ count(*) from t1;
  2.  
  3. Execution Plan
  4. ----------------------------------------------------------
  5. Plan hash value: 3724264953
  6.  
  7. ------------------------------------------------------------------------------------------
  8. | Id | Operation | Name | Rows | Cost (%CPU)| Time |
  9. ------------------------------------------------------------------------------------------
  10. | 0 | SELECT STATEMENT | | 1 | 3 (0)| 00:00:01 |
  11. | 1 | RESULT CACHE | 83r168smxh22sgfhqrq2u524uv | | | |
  12. | 2 | SORT AGGREGATE | | 1 | | |
  13. | 3 | TABLE ACCESS FULL| T1 | 2 | 3 (0)| 00:00:01 |
  14. ------------------------------------------------------------------------------------------
  15.  
  16. Result Cache Information (identified by operation id):
  17. ------------------------------------------------------
  18.  
  19. 1 - column-count=1; dependencies=(GYJ.T1); attributes=(single-row); name="select /*+ result_cache */ count(*) from t1"
  20.  
  21. Statistics
  22. ----------------------------------------------------------
  23. 1 recursive calls
  24. 0 db block gets
  25. 6 consistent gets
  26. 0 physical reads
  27. 0 redo size
  28. 526 bytes sent via SQL*Net to client
  29. 520 bytes received via SQL*Net from client
  30. 2 SQL*Net roundtrips to/from client
  31. 0 sorts (memory)
  32. 0 sorts (disk)
  33. 1 rows processed
  1. gyj@OCM> select /*+ result_cache */ count(*) from t1;
  2.  
  3. Execution Plan
  4. ----------------------------------------------------------
  5. Plan hash value: 3724264953
  6.  
  7. ------------------------------------------------------------------------------------------
  8. | Id | Operation | Name | Rows | Cost (%CPU)| Time |
  9. ------------------------------------------------------------------------------------------
  10. | 0 | SELECT STATEMENT | | 1 | 3 (0)| 00:00:01 |
  11. | 1 | RESULT CACHE | 83r168smxh22sgfhqrq2u524uv | | | |
  12. | 2 | SORT AGGREGATE | | 1 | | |
  13. | 3 | TABLE ACCESS FULL| T1 | 2 | 3 (0)| 00:00:01 |
  14. ------------------------------------------------------------------------------------------
  15.  
  16. Result Cache Information (identified by operation id):
  17. ------------------------------------------------------
  18.  
  19. 1 - column-count=1; dependencies=(GYJ.T1); attributes=(single-row); name="select /*+ result_cache */ count(*) from t1"
  20.  
  21. Statistics
  22. ----------------------------------------------------------
  23. 0 recursive calls
  24. 0 db block gets
  25. 0 consistent gets
  26. 0 physical reads
  27. 0 redo size
  28. 526 bytes sent via SQL*Net to client
  29. 520 bytes received via SQL*Net from client
  30. 2 SQL*Net roundtrips to/from client
  31. 0 sorts (memory)
  32. 0 sorts (disk)
  33. 1 rows processed

看到了吗,第二次执行consistent gets=0,整个逻辑读为0,说明没有执行SQL。发出SQL语句直接从共享池的Result Cache(结果集缓)存中取数据返回给客户端。

一道OCP的题目就引出了好多东西,这道题原本只是考结果缓存池在哪?实际了我们不但要知道它在共享池shared pool中,更重要的,我们要知道它的作用,Result Cache(结果集缓)是提高SQL的查询性能。哈哈。。OCP题库确实是个好东西啊,读懂每道题,转化为自己的知识,1000多道这样折腾下来,你的理论知识不扎实都不可能了。

QQ:252803295

技术交流QQ群:
DSI&Core Search  Ⅰ 群:127149411(2000人技术群:未满)
DSI&Core Search  Ⅱ 群:177089463(1000人技术群:未满)
DSI&Core Search  Ⅲ 群:284596437(500人技术群:未满)
DSI&Core Search  Ⅳ 群:192136702(500人技术群:未满)
DSI&Core Search  Ⅴ 群:285030382(500人闲聊群:未满)

MAIL:dbathink@hotmail.com

BLOG: http://blog.csdn.net/guoyjoe

WEIBO:http://weibo.com/guoyJoe0218

ITPUB: http://www.itpub.net/space-uid-28460966.html

OCM:   http://education.oracle.com/education/otn/YGuo.HTM

ACONG:  http://www.acoug.org/category/membership

[每日一题] 11gOCP 1z0-053 :2013-10-12 RESULT_CACHE在哪个池?.............................44的更多相关文章

  1. [每日一题] 11gOCP 1z0-052 :2013-09-1 RMAN-- repair failure........................................A20

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/10859315 正确答案:D 一.模拟上题的错误: 1.删除4号文件 [oracle@myd ...

  2. [每日一题] 11gOCP 1z0-053 :2013-10-9 backup with the KEEP option....................................33

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/12517603 正确答案:AB 在Oracle 11g中,可以使用backup ….keep ...

  3. [每日一题] 11gOCP 1z0-052 :2013-09-17 DRA--Data Recovery Advisor.............................B31

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11818529 正确答案:AD 数据库恢复顾问(DRA)是一个诊断和修复数据库问题的工具.共 ...

  4. [每日一题] 11gOCP 1z0-052 :2013-08-31 数据库的存储结构....................................................A8

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/10784599 . 正确答案:A 将逻辑存储与物理存储分开是关系数据库范例的必要部分.关系数 ...

  5. [每日一题] 11gOCP 1z0-052 :2013-09-27 bitmap index.................................................C37

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/12106027 正确答案C 这道题目是需要我们掌握位图索引知识点. 一.首先我们来看位图索引 ...

  6. [每日一题] 11gOCP 1z0-052 :2013-09-4 block header grows............................................A33

    转载请注明出处:http://write.blog.csdn.net/postedit/11100311 正确答案是:AD 要理解这道题就要去了解数据块的结构.引用OCPPPT中的一幅图: 从这幅图中 ...

  7. [每日一题] 11gOCP 1z0-052 :2013-09-19 创建用户...................................................B41

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11834661 正确答案:BC 这道题比较简单,我就以答案来解析,如下来自官方文档创建用户的 ...

  8. [每日一题] 11gOCP 1z0-052 :2013-09-10 ABOUT ALERTS...............................................A50

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11546561 正确答案:AD 使用服务器生成的警报系统,从Oracle10g版本开始,Or ...

  9. [每日一题] 11gOCP 1z0-052 :2013-09-5 runInstaller oracle of no swap

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11186995 正确答案:A 我们先来看下面这张截图,这是我在安装Oracle 11.2.0 ...

随机推荐

  1. php编译参数注解--不明白许多参数的作用 慎用 –with-curlwrappers参数

    在Linux下安装PHP,源代码方式安装,总需要配置很多参数.这里列出常用配置参数,并详细用中文解释说明了.给大家一些参考 编译PHP的时候慎用 –with-curlwrappers参数 ./conf ...

  2. 【原创】深度神经网络(Deep Neural Network, DNN)

    线性模型通过特征间的现行组合来表达“结果-特征集合”之间的对应关系.由于线性模型的表达能力有限,在实践中,只能通过增加“特征计算”的复杂度来优化模型.比如,在广告CTR预估应用中,除了“标题长度.描述 ...

  3. js显示日期时间(集锦)

    1.最简单的时钟显示 <div id="time"></div> <script> setInterval(); </script>

  4. span文字在左背景图片在右

    <html><head><meta http-equiv="Content-Type" content="text/html; charse ...

  5. java jvm学习笔记四(安全管理器)

    欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一 ...

  6. NGINX(七)分段下载

    前言 nginx分段下载通过ngx_http_range_filter_module模块进行处理,关于HTTP分段下载过程,可以参考HTTP分段下载一文,主要分为一次请求一段和一次请求多段 涉及数据结 ...

  7. HDU 5634 Rikka with Phi 线段树

    题意:bc round 73 div1 D 中文题面 分析:注意到10^7之内的数最多phi O(log(n))次就会变成1, 因此可以考虑把一段相同的不为1的数缩成一个点,用平衡树来维护. 每次求p ...

  8. 安装GNS3-0.8.6-all-in-one时language里没有选项

    初次安装使用GNS3,安装的版本是GNS3-0.8.6-all-in-one,本人也是菜鸟,安装时都是一路 Next,结果安装后运行出现了这样的问题,如图 language里是没有选项的,解决方法 把 ...

  9. JS实现网页下载[转]

    function downloadById() {        var url = "http://localhost:64610/WorkProcess/ResumeDetail/7&q ...

  10. Js(Jquery)实现的弹出窗口

    想实现一个弹出层,过一段时间自动消失的功能. 之前的项目中是:在页面中预先先一个<div>区域,默认隐藏或者因为没有内容不显示.当需要显示信息时,将该<div>填充上内容,并用 ...