oracle11g:/*+ result_cache */

Oracle Database 11g提供了一个新的、单独的共享内存池来存储查询结果,这个结果集缓存直接从共享池分配并且单独维护。这是一个重要的改进性能和优化系统的新特性。结果集缓存可以将查询的结果(例如,工资计算后的总和)缓存在内存中,显著改进将来需要多次执行和查询相同结果的查询的性能。结果集缓存最适合的是静态数据表(如果数据发生变化,就必须重新计算一次),即结果集缓存最适合不停返回同样结果的查询(最适合数据仓库和批量查询)。还有一个RESULT_CACHE提示,可以强制其使用(这里给出一个例子);第7章有更多的信息。下面的第一个查询计算每个部门的薪水总和;第二个查询检查结果集缓存里面存储的内容:

select /*+ result_cache */ deptno, sum(sal)

from    scott.emp

group   by deptno;

select *

from    v$result_cache_memory;

注意当使用sysdba登录数据库时,不能使用结果集缓存。

你可能感兴趣的:(oracle)