[每日一题] 11gOCP 1z0-053 :2013-10-12 RESULT_CACHE在哪个池?.............................44
转载请注明出处: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)
sys@OCM> show parameter result 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 3360K
result_cache_mode string MANUAL
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:则需要通过查询提示来告诉优化器是否缓存结果。
sys@OCM> show parameter result 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 3360K
result_cache_mode string MANUAL
result_cache_remote_expiration integer 0
(2)在没有缓存结果的况情下的测试
gyj@OCM> set autot traceonly;
gyj@OCM> select count(*) from t1; Execution Plan
----------------------------------------------------------
Plan hash value: 3724264953 -------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 3 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | TABLE ACCESS FULL| T1 | 2 | 3 (0)| 00:00:01 |
------------------------------------------------------------------- Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
6 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
520 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
gyj@OCM> set autot traceonly;
gyj@OCM> select count(*) from t1; Execution Plan
----------------------------------------------------------
Plan hash value: 3724264953 -------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 3 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | TABLE ACCESS FULL| T1 | 2 | 3 (0)| 00:00:01 |
------------------------------------------------------------------- Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
6 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
520 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
不管你执行几次select count(*)from t1;,它的consistent gets值都为6.从下面可以看出逻辑读是6(逻辑读= 当前读db block gets+一致性读consistent gets)
(2)在有缓存结果的况情下的测试
gyj@OCM> select /*+ result_cache */ count(*) from t1; Execution Plan
----------------------------------------------------------
Plan hash value: 3724264953 ------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 3 (0)| 00:00:01 |
| 1 | RESULT CACHE | 83r168smxh22sgfhqrq2u524uv | | | |
| 2 | SORT AGGREGATE | | 1 | | |
| 3 | TABLE ACCESS FULL| T1 | 2 | 3 (0)| 00:00:01 |
------------------------------------------------------------------------------------------ Result Cache Information (identified by operation id):
------------------------------------------------------ 1 - column-count=1; dependencies=(GYJ.T1); attributes=(single-row); name="select /*+ result_cache */ count(*) from t1" Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
6 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
520 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
gyj@OCM> select /*+ result_cache */ count(*) from t1; Execution Plan
----------------------------------------------------------
Plan hash value: 3724264953 ------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 3 (0)| 00:00:01 |
| 1 | RESULT CACHE | 83r168smxh22sgfhqrq2u524uv | | | |
| 2 | SORT AGGREGATE | | 1 | | |
| 3 | TABLE ACCESS FULL| T1 | 2 | 3 (0)| 00:00:01 |
------------------------------------------------------------------------------------------ Result Cache Information (identified by operation id):
------------------------------------------------------ 1 - column-count=1; dependencies=(GYJ.T1); attributes=(single-row); name="select /*+ result_cache */ count(*) from t1" Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
0 consistent gets
0 physical reads
0 redo size
526 bytes sent via SQL*Net to client
520 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
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的更多相关文章
- [每日一题] 11gOCP 1z0-052 :2013-09-1 RMAN-- repair failure........................................A20
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/10859315 正确答案:D 一.模拟上题的错误: 1.删除4号文件 [oracle@myd ...
- [每日一题] 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 ...
- [每日一题] 11gOCP 1z0-052 :2013-09-17 DRA--Data Recovery Advisor.............................B31
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11818529 正确答案:AD 数据库恢复顾问(DRA)是一个诊断和修复数据库问题的工具.共 ...
- [每日一题] 11gOCP 1z0-052 :2013-08-31 数据库的存储结构....................................................A8
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/10784599 . 正确答案:A 将逻辑存储与物理存储分开是关系数据库范例的必要部分.关系数 ...
- [每日一题] 11gOCP 1z0-052 :2013-09-27 bitmap index.................................................C37
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/12106027 正确答案C 这道题目是需要我们掌握位图索引知识点. 一.首先我们来看位图索引 ...
- [每日一题] 11gOCP 1z0-052 :2013-09-4 block header grows............................................A33
转载请注明出处:http://write.blog.csdn.net/postedit/11100311 正确答案是:AD 要理解这道题就要去了解数据块的结构.引用OCPPPT中的一幅图: 从这幅图中 ...
- [每日一题] 11gOCP 1z0-052 :2013-09-19 创建用户...................................................B41
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11834661 正确答案:BC 这道题比较简单,我就以答案来解析,如下来自官方文档创建用户的 ...
- [每日一题] 11gOCP 1z0-052 :2013-09-10 ABOUT ALERTS...............................................A50
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11546561 正确答案:AD 使用服务器生成的警报系统,从Oracle10g版本开始,Or ...
- [每日一题] 11gOCP 1z0-052 :2013-09-5 runInstaller oracle of no swap
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11186995 正确答案:A 我们先来看下面这张截图,这是我在安装Oracle 11.2.0 ...
随机推荐
- vijos1067守望者的逃离
裸的矩阵乘法,我却调了一上午……弱到爆啊…… 不过最终辛苦没有白费,我终于彻底搞懂了 要注意几点: 一.必须构造出前几项 二.用矩阵乘法算法之后还要手工算答案,利用首先算好的前几项 三.想好自己构造的 ...
- Spark(1) - Getting Started with Apache Spark
Introduction Apache Spark is a general-purpose cluster computing system to process big data workload ...
- [信息OJ 2467] Asakura的难题
2467: G Asakura的难题 Time Limit:2000MS Memory Limit:65536KB Description Asakura是班里有名的捣蛋鬼,所以经常有同学到老师那里 ...
- 修改Android默认背光值
/********************************************************************* * 修改Android默认背光值 * 说明: * 本文主要 ...
- RhinoMocks简单范例
using System; namespace MockTest { public interface IBBB { int Number { get; } int Compute(int j); i ...
- 绕过CDN查找网站真实IP方法
查找网站 源IP方法: 如果遇到需要绕过CDN,查找网站真实IP地址时,可以采用如下方法: 假设主站服务和邮件服务在同一台服务器: 1.在网站用QQ邮箱注册账号: 2.收取注册验证邮件: 3.查看邮件 ...
- Js 与 TextArea
当给一个js变量赋值一个有换行的值得时候,就会报错: <!DOCTYPE HTML> <html> <head> <script src="http ...
- 【译】 AWK教程指南 附录A-Patterns
awk 通过判断 Pattern 的值来决定是否执行其后所对应的Actions.这里列出几种常见的Pattern: A.1 BEGIN BEGIN 为 awk 的保留字,是一种特殊的 Pattern. ...
- 安装zabbix server
本文安装的zabbix版本为2.2 步骤 1.安装php 5.3.3 rpm -e `rpm -qa | grep php` rpm -ivh http://mirrors.163.com/cento ...
- Tomcat问题笔记
1. Tomcat服务器只能同步WebContent目录到webapps下面,如果WebContent里面的.html文件引用了与WebContent文件夹同级目录下的一个.js文件,Tomcat服务 ...