`
jianchen
  • 浏览: 342990 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

BIEE之timestamp问题

    博客分类:
  • BI
 
阅读更多

 

最近在做一个需求,数据量比较大,遂自己根据查询语句建了几个索引,但是依然发现效果不明显。


让DBA帮忙优化后,指出在查询语句中,关于日期的过滤写法有问题:

 

 

T46460.gmv_date = TIMESTAMP '2012-11-01 00:00:00'
 

应该改成to_date的方式,这样执行起来要快不少。

首先去查了下为什么这种写法就会很慢,我在answer中针对日期列指定了具体的日期,比如2012年11月1日,以生成查询sql,BIEE在生成查询sql的时候,会用timestamp的方式进行转换,但是这样就会跳过该列的索引了,导致相当于进行了全表扫描来着。


另外的一个现象:

在查询提示器里,选择日期,一开始没有时分秒,一旦选择了执行后,查询提示器里会自动的加上了时分秒。


所以解决方案是,如何在生成的查询sql里保证使用的是to_date函数即可。


网上老外的博客里提到了针对timestamp列建立索引的方式来优化查询。

链接如下:http://obiee101.blogspot.com/2009/03/obiee-date-timestamp-and-oracle-indexes.html


遇到类似问题的文章链接:

http://www.rittmanmead.com/2009/03/dates-timestamp-and-oracle-bi-answers-filters/


数据平台的同事的文章:

http://www.alidata.org/archives/107


经过检查,rpd中针对日期维度使用的数据类型为datetime,于是修改成date类型。

这样改好后,的确查询的语句使用了to_date函数,查询性能提升明显。


但是发布后,却引入了新的问题。

发现默认展示没有问题,针对报表进行日期选择查询后,报如下错误:


A date value was expected
 

 

经过上网查询资料,说是BIEE的一个bug,patch的说明如下:

http://obiee101.blogspot.com/2010/01/obiee-patches-101341-part-2.html


在网上搜索其他文章,

https://forums.oracle.com/forums/thread.jspa?messageID=10684745

http://blog.csdn.net/mlz_2/article/details/6154805


可以通过修改globalfilterprompt.js文件解决。该文件的路径为:

OracleBI\oc4j_bi\j2ee\home\applications\analytics\analytics\res\b_mozilla\prompts\globalfilterprompt.js


我用firebug进行了debug,该文件的230多行,


   var sTimeZoneOffset = tArgs[3];

   var nOffset = parseInt(sTimeZoneOffset)
   if (nOffset)
   {
      var tDTP = new DateTimeParser();
      for (var i = 0; i < tValues.length; ++i)
      {
         tValues[i] = saw.tz.parseAndAdjustTimeZoneOffset(tValues[i], nOffset);
      }
   }
 

 

在for循环里面,parseAndAdjustTimeZoneOffset方法返回后,值就变成了日期+时分秒的格式。


该方法是在OracleBI\oc4j_bi\j2ee\home\applications\analytics\analytics\res\b_mozilla\common\datetime.js文件里,873行左右。


 

saw.tz.parseAndAdjustTimeZoneOffset = function (sDateTime, nTimeZoneOffset)
{
   if (sDateTime)
   {
      if (nTimeZoneOffset)
      {
         var tDTP = new DateTimeParser();
         var tDateTime = tDTP.parse(sDateTime, 1 | 2 | 4 | 8 | 16 | 32);
         if (tDateTime)
         {
            tDateTime.adjustTimeZoneOffset(nTimeZoneOffset);
            var sValue = tDateTime.dateString() + ' ' + tDateTime.timeString();
            return sValue;
         }
      }
   }   

   return sDateTime;
}
  

显式的加上了时分秒,因为上述的文章里没有具体讲到如何去更改,所以我就尝试将

 

tValues[i] = saw.tz.parseAndAdjustTimeZoneOffset(tValues[i], nOffset);
 

 的调用给干掉。重新测试后,发现问题并未解决。估计js改的不彻底。


后续想到,其实我的本地OBIEE环境并没有遇到这个类似的问题。既然oracle已经打了patch,估计是我们的BIEE版本比线上的BIEE版本要新(事实上也正是如此)。


于是也不纠结js具体如何改了,把线上的js文件和我本地的js文件了进行了对比,发现的确是有差异来着。

于是将本地的js文件替换掉线上的js文件,最终问题解决。

 

补充下,记得清浏览器的缓存,否则浏览器加载的还是老的js,这个就坑爹了。

There is one last thing you need to know before proceeding – the browser caches the JS files so you’ll need to clear the browser’s cache every time you change your code. In Internet Explorer, you can do it in Tools -> Internet Options -> Delete Files -> Delete all offline content. You’ll do it a lot while developing, so having a button that does that will be great. You can use Microsoft’s IE developer toolbar or another developer toolbar.

分享到:
评论

相关推荐

    BIEE BIEE BIEE BIEE

    Oracle BIEE(Business Intelligence Enterprise Edition)是一款强大的商业智能解决方案,用于数据分析和报表生成。本文主要探讨如何使用BIEE Administration Tool创建和管理BIEE资料库,包括创建物理模型、逻辑...

    BIEE_常见问题详细解答

    本文档“BIEE_常见问题详细解答”针对BIEE开发过程中遇到的各类问题进行了深入剖析,为开发者提供了宝贵的解决方案和参考。** 1. **登录问题**:在BIEE使用中,有时会遇到无法登录或者登录后权限不足的情况。这可能...

    Oracle BIEE常见问题解决办法汇总

    Oracle BIEE 常见问题解决办法汇总 问题1:提示组合 * 添加筛选器选择对应的列 * 在筛选器属性页面,运算符中选择提示 知识点: 在 Oracle BIEE 中,添加筛选器可以根据需要选择对应的列,并在筛选器属性页面中...

    BIEE常见问题解答

    ### BIEE常见问题解答 #### 一、仪表板分组下拉显示 在Oracle Business Intelligence Enterprise Edition (BIEE) 10g中,为了更好地管理大量的仪表板,可以通过以下步骤实现仪表板分组下拉显示: 1. **配置`...

    oracle biee常见问题解答

    ### Oracle BIEE 常见问题解答 #### 一、仪表板操作与配置 **1. 仪表板分组下拉显示** - **解决办法**:为了实现仪表板分组下拉显示的功能,需要对`instanceconfig.xml`进行配置。具体来说,在此配置文件中加入`...

    BIEE11g常见问题(整合版)

    以下是一些针对BIEE 11g常见问题的详细解答: 1. **如何实现下钻逻辑维**: 下钻逻辑维在BIEE中通常通过层次结构来实现。在Repository Design (RPD) 中,创建一个包含层次关系的维度,并在分析视图中设置相应的下...

    BIEE入门视频,轻松学会BIEE

    BIEE入门视频,BIEE 资料,轻松学会BIEE,BIEE教程

    BIEE11G入门培训

    Oracle Business Intelligence Enterprise Edition (BIEE) 是一款强大的商业智能平台,主要负责数据整合、分析和展示,帮助企业做出...通过实际操作和练习,你将能够更好地利用BIEE来解决业务问题,提供有价值的洞察。

    深入浅出Oracle之BIEE

    《深入浅出Oracle之BIEE》这篇文章主要介绍了Oracle Business Intelligence Enterprise Edition (BIEE) 的安装过程以及如何通过一个完整的实例来理解BIEE的功能和操作。Oracle BIEE是Oracle公司提供的一款强大的商业...

    biee 参数接收方法

    Oracle Business Intelligence Enterprise Edition (BIEE) 是一个强大的商业智能平台,用于数据分析和报表生成。在BIEE中,仪表盘是用户交互的...在实践中,结合官方文档和社区资源,可以更好地解决遇到的问题和挑战。

    biee简单实例教程

    【标题】:“biee简单实例教程” 在Oracle Business Intelligence Enterprise Edition (BIEE)中,创建简单的报表和数据透视表是数据分析的基础操作。本教程旨在引导初学者掌握这些基本技能,帮助他们更好地理解和...

    BIEE 入门学习资料

    **Oracle Business Intelligence Enterprise Edition (BIEE) 入门学习指南** ...提供的“biee入门”压缩包文件应该包含了初步的学习材料,包括文档、教程等,充分利用这些资源,你的BIEE学习之旅将会更加顺利。

    BIEE12C 官方发布 的用户操作手册(中文)

    9. **故障排查与支持**:手册最后会提供一些常见的问题解决策略,帮助用户诊断和修复系统故障,同时也会介绍Oracle提供的技术支持资源。 通过深入阅读并实践《BIEE12C用户操作手册(中文)》,用户不仅可以掌握BIEE...

    BIEE资料(大部分)

    **正文** 标题“BIEE资料(大部分)”暗示了这个压缩包主要包含了与Business Intelligence Enterprise Edition(BIEE...通过深入学习这些材料,不仅可以提升对BIEE的理解,还能增强在实际工作中运用BI解决问题的能力。

    oracle BIEE 常见问题的原因

    在使用过程中,BIEE可能会遇到各种问题,这通常与配置、性能、数据集成或用户访问权限有关。以下是一些可能的问题及其原因: 1. **性能问题**:当BIEE运行缓慢或查询时间过长时,可能的原因包括数据库索引不足、...

    BIEE11G培训资料

    最后,用户将了解如何诊断和解决BIEE11G遇到的问题,以及如何进行日常维护,确保系统的正常运行。 通过这份全中文的BIEE11G培训资料,无论是初学者还是有经验的用户,都能得到全面的指导,进一步提升在商业智能...

    biee10开发手册

    安装过程中产生的日志文件对于排查问题至关重要,应定期检查和分析这些日志,以便了解安装状态和可能的错误信息。 1.3 配置 1.3.1 安装后的目录 安装完成后,了解BIEE的目录结构对后续的配置和管理至关重要。例如,...

    BIEE跟java结合

    当我们需要将BIEE的功能集成到Java应用程序中时,通常会通过BIEE提供的Web服务接口来实现。本篇文章将深入探讨如何利用BIEE的Web服务接口,让Java程序调用其中的方法,实现两者之间的紧密结合。 首先,理解BIEE的...

    BIEE LDAP 配置 图文解释

    在IT行业中,BIEE(Business Intelligence Enterprise Edition)是Oracle提供的一个强大的商业智能解决方案,它允许用户从各种数据源中获取、分析并报告数据。而LDAP(Lightweight Directory Access Protocol)则是...

Global site tag (gtag.js) - Google Analytics