是否有任何产品可以使用JDBC(普通SQL)进行查询,它会查看查询中的所有表是否都在CACHED表中,并使用缓存,否则回退到后端数据库。
我了解两种产品:Oracle内存数据库(IMDB)缓存和VMware SQLFire。
我不熟悉它们,所以我想知道是否有可能在非缓存表上查询IMDB缓存,因此它会回退到底层数据库?
是否有其他产品支持此功能?
答案 0 :(得分:0)
使用11g,您可以使用JDBC OCI Client Result Cache:
客户端结果缓存功能支持SQL查询的客户端缓存 客户端内存中的结果集。通过这种方式,OCI应用程序可以使用 客户端内存利用客户端结果缓存来改进 重复查询的响应时间。
请注意,CACHE子句并不代表名称所暗示的内容:
对于经常访问的数据,此子句表示 为此表检索的块放在最近使用的块中 一个缓冲区缓存中最近最少使用(LRU)列表的结尾 执行全表扫描。此属性对小型有用 查找表。
答案 1 :(得分:0)
Oracle内存数据库(IMDB)高速缓存确实支持您所要求的功能。
如果您使用的SQL语句引用了IMDB缓存表,则将使用该缓存。如果您使用的SQL语句引用了非缓存表,则将访问Oracle数据库。
IMDB缓存使用SQL或PLSQL对Oracle数据库进行读和/或写缓存。 您可以使用JDBC [或ODBC,OCI,ODP.Net,Node.js,Python,Go,Ruby等]与Oracle数据库或IMDB缓存进行对话。
IMDB Cache还可以与对象关系映射技术(例如Hibernate [例如JPA])一起用于数据访问。
IMDB缓存使用Oracle TimesTen内存数据库,现在称为“ Oracle应用程序层数据库缓存”。
我是Oracle TimesTen的产品经理。