Quantcast
Channel: DBA Sky » imdb cache
Viewing all articles
Browse latest Browse all 7

timesten 11学习十二:user managed cache group(四)

$
0
0

timesten学习十一:user managed cache group(三)readonly属性
timesten学习十:user managed cache group(二)Propagate属性
timesten学习九:user managed cache group(一)创建一个简单的cache group
timesten学习 八:IMDB cache中表更新一例
timesten学习七:关于timesten的几个工具
timesten学习六:实战配置IMDB cache(二)
timesten学习五:实战配置IMDB cache(一)
timesten学习四:配置IMDB cache的几个概念
timesten学习三:启动和停止timesten db
timesten学习二:管理用户账户和权限
timesten学习一:安装,建库

今天学习一下 cache group的autorefresh属性。

首先需要注意的一点是:propagate和readonly属性是表上的,autorefresh是cache group的。

autorefresh属性可以在创建只读cache group时指定也可以在创建user managed cahe group时指定。这个属性指定对oracle基表的已提交更新会自动的更新到TT表。在readonly cache group中这个属性是默认的,忘了的同学复习一下timesten学习五:实战配置IMDB cache(一)
下边是自动更新属性的默认设置
1.自动更新属性是增量的
2.自动更新间隔是5分钟
3.自动更新状态是暂停

TT支持两种类型的自动刷新模式:
1.增量:每到刷新间隔,oracle已经提交的更新会自动刷新到TT,增量自动刷新使用oracle的视图来追踪oracle基表的改变,这些视图可以参考Cache User’s Guide。
2.全量:每个刷新间隔,TT会卸载只读表的所有行,然后从oracle重新加载这些行。

使用增量的时候会增加一点TT的负载,而使用全量的时候不会增加负载。

当使用增量刷新的时候,oracle使用change logtable来追踪改变。可能的情况是:这个表中记录的改变在还没有刷新到TT之前被删除,如果这样,会导致TT对这个cache group的一次全刷新。自动刷新间隔可以指定分,秒,毫秒,有同样刷新间隔的cache group会在同一个事务中被刷新,你可以使用ttCacheAutorefresh内建过程来立即刷新。
增量刷新的状态可以设置为ON,OFF,PAUSED,当为ON的时候会被TT自动调度。当状态设置为OFF的时候,对oracle基表的改变不会被追踪,当状态为paused的时候会追踪oracle基表的改变,但是不会刷新到TT,ON的时候既追踪又刷新。

当使用autorefresh属性的时候,有下列限制:
1.这个cache group上不能再使用flush cache group语句。
2.oracle基表上的truncate table语句不会自动刷新到TT,在oracle中执行truncate table语句前,使用alter cache group语句改变表所在的cache group 自动刷新状态为paused。当oracle执行为truncate table之后,在TT中执行refresh cache group语句来手工刷新cache group.
3.只有当cache table是空的时候才能使用load cache group语句,除非是dynamic cache group
4.在执行load cache group之前,自动刷新的状态必须是paused,除非这个cache group是动态的。动态cache group的话状态可以是paused或者on,除非是动态cache group才能使用带where语句的load cache group语句,要加上commit every N rows语句。
5.执行refresh cache group语句之前状态必须是paused的,并且这个语句不能包好where语句
6.当创建,加载,卸载cache group的时候,where字句中应用的表和列必须全应用,例如:user_name.table_name and user_name.table_name.column_name
7.当在一个user managed cache group中使用autorefresh 属性,所有的表必须使用propagate属性或者都必须使用readonly属性
8.如果一个user managed cache group中的表显示的使用了Not propagate属性,就不能使用autorefresh属性了。
9.除非一个cache group是动态的,否则不能使用LRU aging,
例子:


Viewing all articles
Browse latest Browse all 7

Latest Images

Trending Articles





Latest Images