ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 11g 新特性 结果高速缓存功能

11g 新特性 结果高速缓存功能

原创 Linux操作系统 作者:bearcanfly123 时间:2011-07-22 15:13:07 0 删除 编辑

高速结果缓存
show parameter result;
result_cache_mode 参数
manual:仅仅在sql查询中使用result_cache提示的时候缓存结果;
auto:成本优化,根据程序将执行频率,执行成本作为变化因素,决定应该何时缓存结果;
force:只要结果合法,都会缓存;

使用提示的缓存
select /*+ result_cache */  ....
缓存参数result_cache_max_size 参数,如果配置了memory_target参数,默认是memory_target的0.25%
sga_target参数的0.5% shared_pool_size参数的1%,但是最大不能超过共享池的75%

set serveroutput on
exec dbms_result_cache.Memory_Report;
R e s u l t   C a c h e   M e m o r y   R e p o r t
[Parameters]
Block Size          = 1K bytes
Maximum Cache Size  = 20M bytes (20K blocks)
Maximum Result Size = 1M bytes (1K blocks)
[Memory]
Total Memory = 12334552 bytes [0.645% of the Shared Pool]
 
... Fixed Memory = 22656 bytes [0.001% of the Shared Pool]
... Dynamic Memory = 12311896 bytes [0.644% of the Shared Pool]
....... verhead = 154968 bytes
....... Cache Memory = 11872K bytes (11872 blocks)
........... Unused Memory = 13 blocks
........... Used Memory = 11859 blocks
............... Dependencies = 443 blocks (277 count)
............... Results = 11416 blocks
................... AUTO    = 646 blocks (646 count)
................... SQL     = 114 blocks (36 count)
................... PLSQL   = 10646 blocks (10646 count)
................... Invalid = 10 blocks (10 count)
 
PL/SQL procedure successfully completed


任何单条查询的结果占高速缓存的最大限制5%
result_cache_max_result  这个可以改变他占有的比例0到100之间

exec dbms_result_cache.flush
alter system flush shared_pool;
可以刷新存储在服务器的结果缓存

管理查询结果告诉缓存:
exec dbms_result_cache.invalidate('ABC','TAB')使某个特定的对象告诉缓存结果无效
select dbms_result_cache.status from dual; 显示结果高速缓存的状态
exec dbms_result_cache.memory_report  显示高度缓存内存使用情况
以下视图显示查询结果细节
v$result_cache_statistics  内存统计数据
v$result_cache_object  对象跟属性
v$result_cache_dependency 显示结果的依赖关系
v$result_cache_memory 显示内存块及统计数据

v$result_cache_objects 视图显示高速缓存的结果和依赖status 列取值
new: 高速缓存结果提供查询使用
published:高速缓存结果可提供查询使用
bypass: 其他查询绕过此高速缓存结果
expired 高速缓存结果过期
invalid 高速缓存结果不能被其他查询使用

查询结果缓存操作的限制:
1.在绑定变量的时候,不能重用相同变量的结果
2.查询非当前数据库版本的时候
3.查询表上有挂起的事物
4.不缓存闪回查询
5.不确定pl/sql函数,currval,nextval,临时表,字典表,sysdata,current_date等函数

client_rsult_cache_size 设置客户端高速缓存默认0不打开。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25223017/viewspace-702856/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-06-27

  • 博文量
    16
  • 访问量
    70689