Oracle OCI客户端缓存不起作用

时间:2011-03-07 08:45:32

标签: oracle oci

我正在使用Oracle Database 11g 11.2.0.2.0并尝试启用oci客户端缓存。它不起作用。 我为启用它而进行的配置更改是

  1. 通过将服务器端参数“client_result_cache_size”设置为10485760(10 MB)来启用客户端结果集缓存
  2. 设置上述参数
  3. 后重新启动oracle实例
  4. 通过执行语句ALTER TABLE emp RESULT_CACHE(MODE FORCE)添加了表注释。我验证了稍后通过​​查询用户表来应用注释。
  5. 在客户端启用语句缓存,即在JDBC驱动程序上启用。
  6. 使用预准备语句来执行查询,以便语句缓存启动。从驱动程序日志中我验证了在第一个查询之后执行后续查询使用相同的语句句柄。
  7. 执行select prepared statement查询三次后,我检查了CLIENT_RESULT_CACHE_STATS $视图。但是这个视图没有产生任何行。

    作为故障排除的一部分,我甚至尝试将/ * + RESULT_CACHE * /提示添加到查询中,但视图未提供任何结果。

    从分析器(flextracer)我可以看到仍然向服务器发出OCI调用以获取select查询的结果集。此外,在启用sql跟踪时,我可以从tkprof中看到,每次执行查询都会增加服务器上提取的行数,这表明OCI中的客户端结果集缓存无效。

    有没有我错过的步骤?

    提前致谢。

1 个答案:

答案 0 :(得分:3)

我意识到我试图启用的缓存功能在标准版中不可用。它仅适用于企业版 - http://download.oracle.com/docs/cd/B28359_01/license.111/b28287/editions.htm#BABDJGGI