为什么Oracle 11g中始终禁用结果缓存

为什么Oracle 11g中始终禁用结果缓存,oracle,caching,oracle11g,Oracle,Caching,Oracle11g,我正在尝试在Oracle11g中启用结果缓存。我使用Enterprise Manager将result\u cache\u max\u size和result\u cache\u max\u result的值分别更改为“1M”和“100”(也许这些不是最佳设置,但我只是想让它正常工作!) 进行这些更改后,我使用以下查询查看是否确实进行了更改: select * from V$PARAMETER where LOWER("NAME") like '%result_cache%'; 我可以看出两个

我正在尝试在Oracle11g中启用结果缓存。我使用Enterprise Manager将
result\u cache\u max\u size
result\u cache\u max\u result
的值分别更改为“1M”和“100”(也许这些不是最佳设置,但我只是想让它正常工作!)

进行这些更改后,我使用以下查询查看是否确实进行了更改:

select * from V$PARAMETER where LOWER("NAME") like '%result_cache%';
我可以看出两个都设置正确。但是,当我使用result_cache提示运行查询时,我可以从Autotrace中看到缓存没有被使用。如果然后运行以下查询:

SELECT dbms_result_cache.status() FROM dual;
我可以看到它的状态是“禁用”。重新启动数据库只会使
result\u cache\u max\u size
参数返回0(禁用)


如何启用结果缓存?

正如您从评论中看到的,这是因为结果缓存只是企业版功能,我有标准版。

检查是否设置了
共享池大小。结果缓存消耗共享池的内存。共享池大小为0-我应该将其设置为什么?将其设置为根据需要计算的值。另外。结果缓存是企业版的一项功能。看起来您至少在使用标准版,因为在企业版中,如果您设置了
结果缓存\u最大\u大小
,而没有设置
共享池\u大小
dbms\u结果缓存.status()
应该返回
旁路
而不是
禁用
。您使用的是什么版本的RDBMS?@NicholasKrasnov我使用的是标准版,所以这可能解释了为什么它不起作用!我想我需要升级。。。