zoukankan      html  css  js  c++  java
  • OBIEE 立方刷新的问题

    1.通过JOB SCHEDULER 进行 ORACLE CUBE 中的物化视图进行刷新时,出现的LOG如下:

    SQL> exec dbms_mview.refresh('DW.CB$DSS_TFAC_DEVICE_CUBE');
    BEGIN dbms_mview.refresh('DW.CB$DSS_TFAC_DEVICE_CUBE'); END;
    
    *
    第 1 行出现错误:
    ORA-37162: OLAP 错误
    XOQ-00703: 执行 OLAP DML 命令
    "(SYS.AWXML!R11_AGGREGATE_CONSISTENT('DSS_TFAC_DEVICE_CUBE.CUBE'
    'DSS_TFAC_DEVICE_CUBE.SOLVE.AGGREGATIONDEFINITION'
    'DSS_TFAC_DEVICE_CUBE.QUANTITY.MEASURE' NA) : ORA-00600: 内部错误代码, 参数:
    [xscbTest], [18446744073709551615], [], [], [], [], [], [], [], [], [], []
    )" 时出错
    ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2558
    ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2771
    ORA-06512: 在 "SYS.DBMS_SNAPSHOT", line 2740
    ORA-06512: 在 line 1
     
    问题很奇怪,其他的物化视图正常,唯独该视图无法刷新,查了一下ORA-00600的报错,大部分人
    给出的方案是重启数据库,或者ORACLE BUG 无法修复。这些等于没有说,肯定不是问题的所在。
     
    2.尝试通过AWM对CUBE 进行刷新,幸运的是得到了更详细的LOG ,贴在下面。
     
       1:  <ERROR   TEXT="XOQ-01600: 执行 DML &quot;SYS.AWXML!R11_LOAD_MEASURES('DSS_TFAC_DEVICE_CUBE.CUBE'  SYS.AWXML!___R11_LONG_ARG_VALUE(SYS.AWXML!___R11_LONG_ARG_DIM 1)  SYS.AWXML!___R11_LONG_ARG_VALUE(SYS.AWXML!___R11_LONG_ARG_DIM 2) 'DSS_TFAC_DEVICE_CUBE.QUANTITY.MEASURE' 'NO')&quot; 时发生 OLAP DML 错误 &quot;ORA-35571: 已达到最大加载错误数。&quot;"/>
       1:   
       2:   
       3:  <ERROR   TEXT="XOQ-01600: 执行 DML &quot;SYS.AWXML!R11_LOAD_MEASURES('DSS_TFAC_DEVICE_CUBE.CUBE'  SYS.AWXML!___R11_LONG_ARG_VALUE(SYS.AWXML!___R11_LONG_ARG_DIM 1)  SYS.AWXML!___R11_LONG_ARG_VALUE(SYS.AWXML!___R11_LONG_ARG_DIM 2) 'DSS_TFAC_DEVICE_CUBE.QUANTITY.MEASURE' 'NO')&quot; 时发生 OLAP DML 错误 &quot;ORA-35571: 已达到最大加载错误数。&quot;"/>

    出现以上问题时,执行的SQL是:

       1:  <SQL>   <![CDATA[ SELECT /*+  bypass_recursive_check  cursor_sharing_exact  no_expand  no_rewrite */    T36_DLLX ALIAS_145,    T33_XZQH ALIAS_146,    T30_DEVTYPEID ALIAS_147,    T27_MONTH_ID ALIAS_148,    SUM(T39_COUNTFLAG)  ALIAS_149  FROM    (   SELECT /*+  no_rewrite */      T1."DEVTYPEID" T39_DEVTYPEID,      T1."XZQH" T39_XZQH,      T1."DLLX" T39_DLLX,      T1."AZRQ" T39_AZRQ,      T1."COUNTFLAG" T39_COUNTFLAG    FROM      DW."ITMS_DW_FACT_DEVICE" T1   )    T39,    (   SELECT /*+  no_rewrite */      T1."DLLX" T36_DLLX    FROM      DW."ITMS_DW_DIM_DLLX" T1   )    T36,    (   SELECT /*+  no_rewrite */      T1."XZQH" T33_XZQH    FROM      DW."ITMS_DW_DIM_DISTRICT" T1   )    T33,    (   SELECT /*+  no_rewrite */      T1."DEVTYPEID" T30_DEVTYPEID    FROM      DW."ITMS_DW_DIM_DEVTYPE" T1   )    T30,    (   SELECT /*+  no_rewrite */      T1."DATE_KEY" T27_DATE_KEY,      T1."MONTH_ID" T27_MONTH_ID    FROM      DW."ITMS_DW_DIM_TIME" T1   )    T27  WHERE    ((T36_DLLX = T39_DLLX)      AND (T33_XZQH = T39_XZQH)      AND (T30_DEVTYPEID = T39_DEVTYPEID)      AND (T27_DATE_KEY = T39_AZRQ) )   GROUP BY    (T27_MONTH_ID, T30_DEVTYPEID, T33_XZQH, T36_DLLX)   ORDER BY    T27_MONTH_ID ASC NULLS LAST ,    T30_DEVTYPEID ASC NULLS LAST ,    T33_XZQH ASC NULLS LAST ,    T36_DLLX ASC NULLS LAST ]]>/> </SQL>

     

    再仔细查看刷新的日志,MV 拒绝了1170条 数据,原因可能就在这里,问题定位到由于外键引用,事实表的存在的数据,在维中没有相关值。

    仔细排查后得到正确的数据。

     
     
  • 相关阅读:
    剑指Offer34 数组中的逆序对
    剑指Offer33 第一个只出现一次的字符
    剑指Offer32 丑数
    剑指Offer31 把数组排成最小的数
    剑指Offer30 从1到n整数出现1的个数
    剑指Offer29 连续子数组最大和
    剑指Offer28 最小的K个数(Partition函数应用+大顶堆)
    DNS的递归查询和迭代查询
    剑指Offer27 数组中超过一半的数
    剑指Offer26 字符串的全排列
  • 原文地址:https://www.cnblogs.com/jerryxing/p/3062793.html
Copyright © 2011-2022 走看看