oracle 11.2 result_cache说明

  

<强> 1相关参数
<强> RESULT_CACHE_MAX_RESULT :指定任一结果可使用的最大高速缓存量,默认值为5%,但可指定1到100之间的任一百分比的值,可在系统和会话级别上实施此参数;
<强> result_cache_max_size :32 k的整数倍,如果将结果高速缓存的值设为0,则会禁用此结果高速缓存,不能超过共享池的75%;
<强> RESULT_CACHE_REMOTE_EXPIRATION 强:可以指定依赖于远程数据库对象的结果保持有效的时间(以分钟为单位),默认值为0,表示不会使用高速缓存使用远程对象的结果。
<强> result_cache_mode :默认为手动,即加提示/ + result_cache /才使用结果缓存
启用结果缓存:

  
 <代码>改变系统设置result_cache_max_result=5;
  改变系统设置result_cache_max_size=20米; 
  

<强> 2相关存储过程
查询内存分配情况:

  
 <代码>完成设置serveroutput  
  

可以看出缓存为结果;不使用结果缓存:

  
 <代码>选择prod_id,总和(amount_sold)从销售集团由prod_id prod_id秩序;
  执行计划
  ----------------------------------------------------------
  计划散列值:4109827725
  
  ----------------------------------------------------------------------------------------------
  | | |操作Id名称| | |行字节成本(% CPU) |时间| Pstart | Pstop |
  ----------------------------------------------------------------------------------------------
  SELECT语句| 0 | | | 72 | 648 | 680 (24)| 00:00:09 | | |
  | 1 |排序GROUP BY | | 72 | 648 | 680 (24) | 00:00:09 | | |
  | 2 |分区范围所有| | 918 | 8075 | 557(8)| 00:00:07 | 1 | | 28日
  | 3 |表访问全部|销售| 918 | 8075 | 557(8)| 00:00:07 | 1 | 28 |  
  

也可以强制对象使用结果缓存:
<代码> alter table销售result_cache(模式);
取消:
<代码> alter table销售result_cache(默认模式);
4相关视图
(G) V $ RESULT_CACHE_STATISTICS:列出各种高速缓存设置和内存使用量统计信息
从V $ RESULT_CACHE_STATISTICS选择
(G) V $ RESULT_CACHE_MEMORY:列出所有内存块和相应的统计信息
从V $ RESULT_CACHE_MEMORY选择

(G) V $ RESULT_CACHE_OBJECTS:列出所有对象(高速缓存结果和依赖性)及其属性
选择cache_id lru_number, db_link,地位,bucket_no,散列,名称、命名空间、类型、状态
从问RESULT_CACHE_OBJECTS美元,名字像“%的销售额%”;
(G) V $ RESULT_CACHE_DEPENDENCY:列出高速缓存结果之间的依赖性详细信息及依赖性
选择b.owner b.object_name,。从V * RESULT_CACHE_DEPENDENCY美元,all_objects b a.object_no=b.object_id;

  

5注意事项
1绑定变量不同,不可以命中
2最适用于需要访问大量行却仅返回其中一少部分的语句,建议使用在OLAP系统/报表系统中使用

oracle 11.2 result_cache说明