您的位置:首页 > 数据库 > Oracle

BIEE中oracle提示(hints)的使用

2011-11-11 16:35 148 查看
提示这个功能在BIEE日常报表中应用并不多,当然也仅能在连接的数据源是oracle的时候才可用。。。但是对于特定的需求还是很有用的。

SQL> select count(*)

2 from cndss.cn_p4p_analy_query_sumwt0

3 where yyyymmdd=to_date('20110425','yyyymmdd');

COUNT(*)

----------

3177524

SQL> CREATE INDEX cndss.idx_p4p_query_sumwt0_query ON cndss.cn_p4p_analy_query_sumwt0(keywords);

Index created.

接着在administration 物理层设置表的属性:



dashboard中很简单的一个查询界面:



再看看会话管理中的sql长啥样:



提示确实生效了!

测试发现,在这样一个数据量下,加入提示后,运行时间从原来的十几秒减少到1秒左右。

总结:在图一的hint里填写的内容是index(表名 索引名) ,这里的表名和索引名都是带schema的完整名称。记得之前有看过说如果表有别名的话,在提示中要写表的别名而不是表名,否则提示无效。。。可见物理层写的提示被BIEE只能地处理了。。。

另外提示的使用还是要遵循在oracle中的使用规则。。。只是在非常必要的时候才建议使用,而且并不是一个长期方案。

由于报表中的数据每天刷新,难免会有删除插入更新等操作,这会导致索引失效,所以定期索引重建是必要的:

alter index cndss.idx_p4p_query_sumwt0_query rebuild;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: