OBIEE缓存机制
来源:互联网 发布:淘宝发布定制产品 编辑:程序博客网 时间:2024/05/21 17:02
本文转自:http://blog.sina.com.cn/s/blog_7e04e0d00102wg5m.html
缓存在obiee里面有三级缓存:
1)对于DB缓存,就是sql的解析问题,可以通过更改sql来完成,对于到obiee上就是更改request或者filter,只要最终生成sql和之前不同即可。这是DB的缓存机制。
2)对于OBIEE机制里面的缓存,详细内容后面总结,现在tips里面就说如何清除。
方法1.登录admin tool,manager->cache->select->purge
方法2.登录web,在setting->Administration->Issue SQL
Call SAPurgeAllCache(); --Purge all the cache
Call SAPurgeCacheByTable( 'DBName', 'CatName', 'SchName', 'TabName' );
Call SAPurgeCacheByQuery('select lastname, firstname from employee where salary > 100000' );
Call SAPurgeCacheByDatabase( 'DBName' );
方法3.做一个bat文件,里面的内容就是
nqcmd -d AnalyticsWeb -u Administrator -p Administrator -s purge.txt
当然purge.txt里面的内容就和方法二里面的一样了。
3)对于Web缓存,就简单的多了,出问题了,自己点击报表左下角的刷新按钮或者在modify页面里面时,results下的刷新按钮就可。
OBIEE缓存:1.用途
1.OBIEE的缓存和以前的各种缓存意义一样,都是为了运行效率的提高,对于一些重复使用率高的报表,解析到后台就是sql,可以一次使用,然后缓存到server中,如果在有效时间内有相同或类似请求的时候就会直接返回结果,或者只经过presentation端的处理即可返回结果。
2.在admin tool里面的物理层,对于每个表General属性,有Cacheable选项,子项还有
1.(never expires)缓存永不过期
对于数据量小而且数据更新频率较高的表,不需缓存。
在nsconfig.ini(OracleBI/Server/Config)里面有cache项,首先enable。子项有:
1).DATA_STORAGE_PATHS
2).MAX_ROWS_PER_CACHE_ENTRY
3).MAX_CACHE_ENTRY_SIZE
4).MAX_CACHE_ENTRIES
5).POPULATE_AGGREGATE_ROLLUP_HITS:默认情况下,如果新的查询中aggregate使用了cache的话,那么不会加入到cache中,但是该选项覆盖默认选项,加入cache。
NQConfig.ini
[ CACHE ]
ENABLE = YES;
DATA_STORAGE_PATHS = "e:/OracleBIData/cache" 500 MB;
MAX_ROWS_PER_CACHE_ENTRY = 100000; // 0 is unlimited size
MAX_CACHE_ENTRY_SIZE = 1 MB;
MAX_CACHE_ENTRIES = 1000;
POPULATE_AGGREGATE_ROLLUP_HITS=YES;
在server运行期间,某查询第一次执行会做cache,在新的查询产生的时候,他会先去确认是否有cache可用,当可用的时候,该cache条目的Last Used会更新,而新查询也无须在发送查询到DB,直接由OBIEE Server返回结果,无cache可用时会加入到cache中去,当cache里面所有的条目超出MAX_CACHE_ENTRIES时,会按照LRU(least recently used)算法将Last Used最早的拿出去,这就可能导致将最常用的而现在没用的查询给清除掉。
上面问题就需要ibot
3. OBIEE还提供一种事务表(event table)的方式来动态追踪表的变化来决定Cache是否purge。表结构如下:
create table UET (
UpdateType Integer not null, --
UpdateTime date DEFAULT SYSDATE not null, --最新的更新时间,必须唯一
DBName char(40) null,
CatalogName varchar(40) null,
SchemaName varchar(40) null,
TableName varchar(40) not null,
Other varchar(80) DEFAULT NULL
);
操作:1.建表,字段名可以不同,顺序必须相同,建议时间系统的script。
4.缓存重用的情况,这问题好像不是很重要。
大约列一下:(前提:Cache中的Base查询(A),新查询(B))
B的查询列是A查询列的子集。
B的where条件是基于A的条件。
B的查询列可以通过A的结果汇总得到。
A的查询有distinct,B的没有,其他一直也无法走cache。
所以在Seed Cache的时候要,1.select list里面都是单值,没有表达式,2.没有where条件,3.对于cost大的且重用较多的
Hints:当MAX_CACHE_ENTRY_SIZE设置大于DATA_STORAGE_PATHS下的实际值的时候,会导致cache失败。
缓存机制的设置:
1,BI server
OracleBI\server\Config\NQSConfig.INI
BI server的缓存,是以文件的形式体现的。查看文件,均是以TBL为后缀名。
OracleBI\server\Config\NQSConfig.INI
2,web cache
OracleBIData\web\config\instanceconfig.xml,该配置文件中指定缓存的配置策略。
在ServerInstance标签中增加如下内容:
- <</SPAN>em><</SPAN>CacheMaxExpireMinutes>60</</SPAN>CacheMaxExpireMinutes>
- <</SPAN>CacheMinExpireMinutes>10</</SPAN>CacheMinExpireMinutes>
- <</SPAN>CacheMinUserExpireMinute
s >10</</SPAN>CacheMinUserExpireMinutes > - <</SPAN>CacheMaxEntries>10</</SPAN>CacheMaxEntries></</SPAN>em>
3,catalog cache
在标签前增加如下配置:
- <</SPAN>em><</SPAN>Catalog>
- <</SPAN>AccountIndexRefreshSecs>120</</SPAN>AccountIndexRefreshSecs>
- <</SPAN>AccountCacheTimeoutSecs>180</</SPAN>AccountCacheTimeoutSecs>
- <</SPAN>PrivilegeCacheTimeoutSec
s >180</</SPAN>PrivilegeCacheTimeoutSecs > - <</SPAN>CacheTimeoutSecs>120</</SPAN>CacheTimeoutSecs>
- <</SPAN>CacheCleanupSecs>600</</SPAN>CacheCleanupSecs>
- </</SPAN>Catalog>
- </</SPAN>em>
- OBIEE缓存机制
- OBIEE
- OBIEE
- 缓存机制
- 缓存机制
- 缓存机制
- 缓存机制
- 缓存机制
- 缓存机制
- 缓存机制
- 缓存机制
- 缓存机制
- 缓存机制
- 缓存机制
- 【缓存】-浏览器缓存机制
- OBIEE安装
- OBIEE TIPS
- HTTP缓存机制--客户端缓存
- DB查询分析器7.01新增的周、月SQL执行计划功能
- JavaScript实现鼠标放上去之后高亮显示且隔行换色
- 1023. Have Fun with Numbers (20)
- Windows server 2008 .net 4.0环境的安装
- 第一篇博客
- OBIEE缓存机制
- 位运算笔记
- day 11 database
- 第八讲 拖放功能
- 机器学习的正则化
- 常用php验证
- 理解复杂C声明
- xcode写C语言的数据类型与vs的不同
- Android 命名规范