为什么Oracle 11g中始终禁用结果缓存
我正在尝试在Oracle11g中启用结果缓存。我使用Enterprise Manager将为什么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%'; 我可以看出两个
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我使用的是标准版,所以这可能解释了为什么它不起作用!我想我需要升级。。。