资讯专栏INFORMATION COLUMN

Oracle Function Result Cache

Pocher / 1600人阅读

摘要:存放与生命周期整合在当前数据源,随着当前数据事物发生而重置。需要额外添加如,不需要当函数重建时,原缓存数据状态置为无效,新的缓存数据会生成。效果甚佳,特此记录。

作用与用法

在Function中使用数据集缓存能够减少函数内部查询调用次数,从而提高效率,尤其适用于数据变动不频繁(如:组织机构)的数据。属于11g新特性。

CREATE OR REPLACE FUNCTION getOperatorNames (v_empIds varchar)
   RETURN VARCHAR RESULT_CACHE
...

在返回值、类型 后加“RESULT_CACHE”即可。

存放与生命周期

整合在当前数据源,随着当前数据事物发生而重置。(11g release 1需要额外添加“RELIES_ON”【如:result_cache relies_on (tablename)】,11g release 2不需要)

cached results can be directly coupled to their underlying data sources.This means that cached results are invalidated and regenerated when transactions occur against the underlying data.

当函数重建时,原缓存数据状态置为无效,新的缓存数据会生成。(缓存空间通过类似“最近最少使用”算法维护)可通过以下sql文查看:

SELECT id
  ,      name
  ,      type
  ,      status
  ,      invalidations
  FROM   v$result_cache_objects
  ORDER  BY
         id;
监控
SELECT name, value
  FROM   v$result_cache_statistics
  WHERE  name IN ("Create Count Success","Find Count");

"Create Count Success" 可以理解为缓存个数,"Find Count"为命中次数。当然,v$result_cache_statistics中还有其他很多信息,比如缓存大小。

一些特性

执行计划中不统计Function Result Cache;
支持跨回话;
更多细节可以查看:pl/sql function result cache in 11g

说点什么

今天项目一个查询页面加载太慢了,数据量大用户体验差。其中有个根据人员ID查询名称的function就占用了0.3~0.4s,不能忍啊。心想有没类似redis的缓存的做法,通过搜索找到了result cache并应用了。效果甚佳,特此记录。

oracle水很深,我们还只是浮游生物。

更多有意思的内容,欢迎访问rebey.cn

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/8264.html

相关文章

  • Oracle Function Result Cache

    摘要:存放与生命周期整合在当前数据源,随着当前数据事物发生而重置。需要额外添加如,不需要当函数重建时,原缓存数据状态置为无效,新的缓存数据会生成。效果甚佳,特此记录。 作用与用法 在Function中使用数据集缓存能够减少函数内部查询调用次数,从而提高效率,尤其适用于数据变动不频繁(如:组织机构)的数据。属于11g新特性。 CREATE OR REPLACE FUNCTION getOper...

    wslongchen 评论0 收藏0
  • Oracle Function Result Cache

    摘要:存放与生命周期整合在当前数据源,随着当前数据事物发生而重置。需要额外添加如,不需要当函数重建时,原缓存数据状态置为无效,新的缓存数据会生成。效果甚佳,特此记录。 作用与用法 在Function中使用数据集缓存能够减少函数内部查询调用次数,从而提高效率,尤其适用于数据变动不频繁(如:组织机构)的数据。属于11g新特性。 CREATE OR REPLACE FUNCTION getOper...

    daydream 评论0 收藏0
  • Oracle Function Result Cache

    摘要:存放与生命周期整合在当前数据源,随着当前数据事物发生而重置。需要额外添加如,不需要当函数重建时,原缓存数据状态置为无效,新的缓存数据会生成。效果甚佳,特此记录。 作用与用法 在Function中使用数据集缓存能够减少函数内部查询调用次数,从而提高效率,尤其适用于数据变动不频繁(如:组织机构)的数据。属于11g新特性。 CREATE OR REPLACE FUNCTION getOper...

    YPHP 评论0 收藏0
  • JavaScript 高级技巧 Memoization

    摘要:来源于拉丁语,不要与混淆了。本文首先介绍一个简单的使用优化技术的例子,然后解读和库中使用的源码,加深理解。总结是一种优化技术,避免一些不必要的重复计算,可以提高计算速度。 memoization 来源于拉丁语 memorandum (to be remembered),不要与 memorization 混淆了。 首先来看一下维基百科的描述: In computing, memoizat...

    刘德刚 评论0 收藏0
  • ORA-02143: invalid STORAGE option --DSG oracle 11g

    摘要:复制数据到分类人阅读评论收藏举报报错原因新增了一个存储选项,不支持此选项解决办法在源端抽取语句是去掉存储选项,在源端下编辑文件配置如下重新发起全同步问题解决 ORA-02143: invalid STORAGE option --DSG oracle 11g 复制数据到oracle 10g 分类: GoldenGate&DSG&SharePlex 2012-10-17 02:36 10...

    yacheng 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<