首页 > Linux操作系统 > Linux操作系统 > 11g 新特性 结果高速缓存功能
高速结果缓存
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博客 ” ,链接:https://blog.itpub.net/25223017/viewspace-702856/ ,如需转载,请注明出处,否则将追究法律责任。