ITPub博客

首页 > 数据库 > Oracle > PLSQL Language Reference-PL/SQL子程序-PL/SQL函数结果缓存(二)

PLSQL Language Reference-PL/SQL子程序-PL/SQL函数结果缓存(二)

原创 Oracle 作者:LuiseDalian 时间:2014-03-30 21:26:49 0 删除 编辑

开发带有函数结果缓存的应用

开发使用结果缓存函数的应用时,不要对于给定的参数值的集合,假定函数体执行的次数。

在一些情况下,结果缓存函数的函数体需要执行:

n  数据库实例的会话第1次使用这些参数调用该函数。

n  当对于这些参数的缓存结果无效时

n  当对于这些参数的缓存结果过期。如果系统需要内存,则可能会抛弃最老的缓存值。

n  当函数绕过缓存(有多种情况)

结果缓存函数的限制

函数为了成为结果缓存函数,必须满足下面的条件:

n  不是被定义在拥有调用者权限的模块中或匿名块中。

n  不是管道式的表函数

n  不引用数据字典表、临时表、序列和不确定的SQL函数。

n  没用OUT, IN OUT模式的参数

n  没有下列类型的IN模式参数。BLOBCLOBNCLOBREF CURSOR、集合、对象、记录

n  返回值类型不能为BLOBCLOBNCLOBREF CURSOR、对象、包含不支持返回类型的记录或集合。

建议结果缓存函数也满足下面的要求:

n  没有副作用

n  不依赖于特定会话的设置

n  不依赖于特定会话的应用上下文

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

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

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    5566254