11G新特性 -- Result Cache
共享池存放sql语句的解析和编译版本,以便数据库能快速执行频繁执行的sql语句和plsql。
在11g中,数据库使用result cache来存放sql和plsql的执行结果。 result cache只能在数据级别进行开启。当cache的对象被修改后,数据库会自动将result cache中的结果置为无效状态。
result cache由两部分组成:sql查询结果缓存、plsql函数结果缓存。
result cache memory pool是SGA新的组成部分。result cache memory pool的默认大小是由参数memory_target来决定,或者由sga_target、shared_pool_size参数决定(主要看内存管理使用了哪种方式)。 result cache使用的内存来自shared pool。
管理result cache
三个新的参数:
-result_cache_max_size:result cache能使用的最大内存。(一般是memory_target*0.25%;sga_target*0.5%;shared_pool*%)
-result_cache_max_result
-result_cache_expiration
取消result cache功能:
SQL> alter system set result_cache_max_size= ;
使用hint开启result cache:
select /*+ result_cache +*/ department_id,avg(salary) from hr.employees group by department_id;
可以使用dbms_result_cache包来管理result cache。
动态视图:
v$result_cache_statistics
v$result_cache_objects
v$result_cache_dependency
v$result_cache_memory
sql查询的result cache
需要设置参数result_cache_mode。result_cache_mode=manual,不开启sql查询结果缓存;result_cache_mode=force,开启sql查询结果缓存
以下限制不可使用sql查询的result cache:
-临时表 -字典表 -不确定的pl/sql函数
-pseudo函数的currval和nextval
-sysdate, sys_timestamp, current_date, current_timestamp, local_timestamp, userenv, sys_context和sys_quid functions
如果想缓存用户编写的基于索引的函数结果,需要在编写函数的时候指定关键字"deterministic",表明该函数每次执行都会返回相同的结果集。
PL/SQL函数的result cache
原理和sql查询result cache类似。
创建pl/sql函数的时候需要使用关键字"result_cache"。还要满足以下的限制:
-不可以是pipeline表函数
-不能包含out、in out参数
-不能是匿名块,必须是命名的
-It can’t have any in parameters belong to the LOB type, ref cursor, and collection, object, or record types.
11G新特性 -- Result Cache的更多相关文章
- Oracle 11g 新特性 – HM(Hang Manager)简介
在这篇文章中我们会对oracle 11g 新特性—hang 管理器(Hang Manager) 进行介绍.我们需要说明,HM 只在RAC 数据库中存在. 在我们诊断数据库问题的时候,经常会遇到一些数据 ...
- 11G 新特性之 密码延迟认证
11G 新特性之 密码延迟认证 11G 新特性之 密码延迟认证 Table of Contents 1. 特性简述 2. 特性潜在引发问题 3. 关闭特性 1 特性简述 为了防止用户密码的暴力破解,从 ...
- 11g新特性与12c新特性
1. 11g新特性概图 管理新特性> 开发新特性> 2. 12c 新特性概图
- 11g新特性-自动sql调优(Automatic SQL Tuning)
11g新特性-自动sql调优(Automatic SQL Tuning) 在Oracle 10g中,引进了自动sql调优特性.此外,ADDM也会监控捕获高负载的sql语句. 在Oracle 11g中, ...
- 使用Oracle 11g新特性 Active Database Duplication 搭建Dataguard环境
Duplication Database 介绍 Duplicate database可以按照用途分为2种: duplicate database(复制出一个数据库) duplicate standby ...
- Oracle 11g 新特性 --SQL Plan Management 说明
Oracle 11g 新特性 --SQL Plan Management 说明 参见大神博主文章: http://blog.csdn.net/tianlesoftware/article/detail ...
- 11g新特性-查询缓存(1)
众所周知,访问内存比访问硬盘快得多,除非硬盘体系发生革命性的改变.可以说缓存在Oracle里面无处不在,结果集缓存(Result Cache)是Oracle Database 11g新引入的功能,引入 ...
- Oracle 11g新特性
文章转自网络 Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(I ...
- 11g新特性-概述 (转)
一.新特性提纲 1.数据库管理部分 ◆数据库重演(Database Replay) 这一特性可以捕捉整个数据的负载,并且传递到一个从备份或者standby数据库中创建的测试数据库上,然后重演负责以测试 ...
随机推荐
- 基于OSGI.NET的MVC插件式开发
最近在研究OSGI.NET插件式开发框架.官方网站提供了一个基于OSGI.NET的插件仓库.下载官方的SDK包安装后VS项目模板会多出一组iOpenWorks项目模板.在学习过程中,发现通过iOpen ...
- 084 HBase的数据迁移(含HDFS的数据迁移)
1.查找命令 bin/hadoop 2.启动两个HDFS集群 hadoop0,hadoop1,都是伪分布式的集群 3.启动hadoop3的zookeeper与hbase 注意点:需要开启yarn服务, ...
- 030 分布式集群中,设定时间同步服务器,以及ntpd与ntpdate的区别
什么时候配置时间同步? 当分布式集群配置好了以后,马上配置的是SSH无密钥配置,然后就是配置时间同步. 时间同步在集群中特别重要. 一:时间同步 1.时间同步 集群中必须有一个统一的时间 如果是内网, ...
- 关于BeanUtils.copyProperties() 用法及区别
这两个类在不同的包下面,而这两个类的copyProperties()方法里面传递的参数赋值是相反的. 例如:a,b为对象BeanUtils.copyProperties(a, b); BeanUtil ...
- Sharc FLAGS I/O Register(flag0~3)
Core FLAG Pins Multiplexing This module also includes the multiplexers of the FLAG0-3 pins shown ...
- python模块中sys.argv[]使用
一.sys 模块 sys是Python的一个「标准库」,也就是官方出的「模块」,是「System」的简写,封装了一些系统的信息和接口. 官方的文档参考:https://docs.python.org/ ...
- Android-认识Bitmap
Android-认识Bitmap 学习自 Android开发艺术探索 例行废话 在Android的各种APP中都被离不开各种各样的图片,有的图片很大,有的图片很小不管这样图片都是一种很吃内存的资源,而 ...
- python魔法方法-属性访问控制
属性访问控制 所谓的属性访问控制就是控制点号访问属性的行为,而且不仅是类的外部,连类的内部也受控制,代码见真章,边看代码边解释: __getattr__(self, item) 定义当访问不存在的属性 ...
- 洛谷.3391.[模板]文艺平衡树(Splay)
题目链接 //注意建树 #include<cstdio> #include<algorithm> const int N=1e5+5; //using std::swap; i ...
- 用单片机控制LED灯(项目)
#include <reg52.h> #define uchar unsigned char sbit LED_RED = P2^; sbit LED_GREEN = P2^; sbit ...