TimesTen内存数据库-第一章 Cache Connect to Oracle概念

TimesTen数据交换技术提供在Oracle数据库和TimesTen数据管理器之间进行链接和双向数据传送。数据交换技术也使得可以方便的捕获和处理进入到TimesTen数据管理器的大流量事件流,而且能进行并发传送数据到Oracle数据库。数据库

TimesTen容许经过建立cache group来高速缓存Oracle数据,以在TimesTen中映射一个或多个Oracle表。浏览器

容许高速缓存Oracle数据的TimesTen联合特征就称为Cache Connect to Oracle缓存

关于高速缓存集合

一个cache group就是描述被高速缓存到TimesTen数据存储中的Oracle数据。高速缓存集合能够建立来自一个单表的全部或部分数据,或一个相关的Oracle数据表集。并发

高速缓存集合能够使用CREATE CACHE GROUP SQL语句或基于浏览器的Cache Administrator(Chapter 6, “CacheAdministrator.”)来建立。异步

图 1.1 显示名为target_customers高速缓存集合缓存Oracle表tablecustomer。高速缓存集合中的数据是存储在Oracle数据库中全部用户的大数据集的一个子集。大数据

图1.1高速缓存一个表.net

clip_image002

若是定义一个root table和多个child tables,则能够在同一个高速缓存集合中缓存多个Oracle表。在一个高速缓存集合中只能有一个root table事件

在拥有多个表的高速缓存集合中,每一个子表必须经过一个外键约束链接到高速缓存集合中的根表或另外一个子表。尽管TimesTen中缓存的表必须使用外键链接约束,但这些表在Oracle实例中不必定必须有链接。缓存集合中的根表不能经过外键约束来引用缓存集合中的任何其它表。全部缓存集合中的其它表都是子表ip

从Oracle加载到TimesTen缓存集合中的基本单位是cache instance,用来描述经过外键与根表特定行相关联的行集。缓存集合中每一个表中粗体显示的是由根表中主键为122标识的缓存实例。此cache instance key肯定根表中的行和引用此行的子表中全部的行。get

图 1.2显示缓存集合target_customers中的表。根表是customerordersorder_item是子表。

图1.2高速缓存多个表

clip_image004

在TimesTen缓存和Oracle之间交换数据

如图 1.3所示,flushpropagate表示从TimesTen缓存拷贝表数据到Oracle,loadrefresh表示从Oracle拷贝数据到TimesTen缓存。

图1.3在TimesTen和Oracle之间交换数据

clip_image006

至于怎样将缓存集合中的数据传送到Oracle和从Oracle刷新数据,将依据所选择的缓存集合的类型。

缓存集合类型

缓存集合的基本类型为:

• READONLY缓存集合。

READONLY缓存集合经过AUTOREFRESH机制来将Oracle表中的更新进行强制缓存以应用到TimesTen。

• SYNCHRONOUS WRITETHROUGH (SWT) 缓存集合。

SYNCHRONOUS WRITETHROUGH (SWT)缓存集合将强制把集合中的缓存数据更新至TimesTen,而且发送到Oracle。SWT缓存集合的更新将被进行同步提交(Oracle)。

• ASYNCHRONOUS WRITETHROUGH (AWT)缓存集合。

ASYNCHROUNOUS WRITETHROUGH (AWT)缓存集合将强制把集合中的缓存数据更新至TimesTen,而且发送到Oracle。AWT缓存集合的更新将被进行异步提交(Oracle)。

• USERMANAGED缓存集合。

USERMANAGED缓存集合能够进行自定义。例如,USERMANAGED缓存集合中的表能够拥有READONLY或PROPAGATE属性。