2

任何人都可以清楚地解释 Oracle 中隐式和显式语句缓存之间的区别(如此处所述)。

我基本上想重现 DBCP 连接池提供的功能,这样一条语句只发送到数据库进行准备一次(或每个连接一次)!

谢谢。

4

1 回答 1

4

从您提供的链接:

当您启用隐式语句缓存时,JDBC 会在您调用此语句对象的 close 方法时自动缓存准备好的或可调用的语句。

显式语句缓存使您能够缓存和检索选定的准备好的和可调用的语句。显式语句缓存依赖于一个键,即您提供的任意 Java 字符串。因为显式语句缓存保留语句数据和状态以及元数据,所以它比隐式语句缓存具有性能优势,隐式语句缓存只保留元数据。但是,在使用这种类型的缓存时必须小心,因为显式语句缓存会保存所有三种类型的信息以供重用,并且您可能不知道从先前使用语句中保留了哪些数据和状态。

看起来隐式缓存总是在关闭时保存准备好的和可调用的语句,而显式缓存只保存您指定的语句。看起来显式缓存可能会稍微快一些,但会带来返回陈旧数据的风险。

于 2013-03-21T20:39:30.910 回答