ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Server Result Cache

Server Result Cache

原创 Linux操作系统 作者:libingk9999 时间:2011-07-18 11:08:06 0 删除 编辑
Server Result Cache通过在SGA中分配一个缓冲区来保存查询结果,Oracle引入了一个新的初始化参数来控制这个cache的大小:result_cache_max_size。可以在system、session、table或者语句级别来设置cache的使用。在语句级可以使用一个新的hint来控制是否缓存查询结果。另外,Oracle还提供了一个新的PL/SQL用来监控和管理Server Result Cache,比如可以清空整个cache的内容或者清空某个查询的结果,也可以生成cache的使用报告等。
既然使用了cache,自然会有cache查找和cache数据清除算法的问题。估计查找还会是通过hash算法,这样还需要引入几个相关的latch。Cache中的数据,也应该是通过LRU或者类似LRU的算法来管理其生命期。
Server Result Cache不仅仅能缓存整个查询的结果,也能缓存查询中某部分操作的结果,比如缓存一次排序的结果,就可以避免再次执行时的排序操作。对于一些比较耗资源的查询操作,缓存结果应该能很好的提升性能。不知道11g对于该特性的引入,会不会像Oracle7引入共享池一样,极大的改善系统性能呢?我们只好拭目以待更进一步的测试了。
除了Server端引入Result Cache,Oracle11g另外一个值得期待的特性就是Client端cache机制的引入。通过OCI接口,在Client端也可以缓存查询结果。典型的场景就是我们在应用服务器端缓存查询结果,这样在前端执行该查询时,甚至不需要到数据库中去执行该查询。客户端结果缓存在OCI进程中,可以被该进程中的多个session或者线程共享。客户端缓存机制通过一个新的初始化参数来控制:client_result_cache_size,当该参数大于0时,该特性被启用。同样的,该特性也可以在system、session、table或者语句级来设置。通过在服务端设置参数而不是客户端设置,可以集中的管理该特性,但是也可以在各个客户端单独进行设置,客户端的设置将覆盖服务端的设置。
通过在服务端和客户端引入对于查询结果的缓存机制,Oracle11g或许能极大的提高查询性能。对于一些读比较频繁的系统,比如数据仓库应用,Oracle11g或者更值得期待。
Server result cache是在shared pool中为查询结果开辟一块专用的缓存,通过新引入的一个初始化参数来控制该cache的大小:result_cache_max_size。如果result_cache_max_size=0则表示禁用该特性。参数result_cache_max_result则控制单个缓存结果可以占总的Server result cache大小的百分比。另外还有一个初始化参数用于控制Server result cache的模式:result_cache_mode,如果取值为auto,则优化器会自动判断是否将查询结果缓存;如果取值为manual(这是默认值),则需要通过查询提示result_cache来告诉优化器是否缓存结果;如果取值为force,则系统会尽可能的缓存查询结果,当然,即使参数取值为force,也可以通过提示no_result_cache来拒绝缓存结果。在itpub关于该特性的讨论中,有人提到,文档中result_cache_mode只有manual/force两个取值。这个可能是文档的bug,通过给参数赋一个非法值得到的报错信息中明白的说明有三个取值:
SQL> alter session set result_cache_mode=a;
ERROR:
ORA-00096: invalid value A for parameter result_cache_mode, must be from among FORCE, MANUAL, AUTO
Oracle11g还引入了一个package专门用于管理server result cache:dbms_result_cache
清空server result cache
SQL> exec dbms_result_cache.flush
PL/SQL procedure successfully completed.

其他相关动态性能视图:
v$result_cache_objects
v$result_cache_memory
v$result_cache_dependency

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

上一篇: lob
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2011-04-28

  • 博文量
    2
  • 访问量
    3259

最新文章