Skip to Main Content

Analytics Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Essbase ASO Cube query performance from OBI EE

Hi all

I have serious problems of performance when I query an ASO cube from OBI EE. The problem born when I implement a filter in some dimension of model in the Business Model and Mapping layer. This filter is to level-0 of the dimension, the values are obtained from a session variable in OBI EE. The objetive of this is apply filters depending of users. Then, for session variable I've a table in relational dabase base with relation between user and "access", then my dimensions (not all) have as level-0 the "access" of users (as duplicated members).

The session variable in OBI EE is filled with row-wise option, so it has all values of "access" that correspond to user (:USER system variabe).

When I query only by one of this filtered dimensions the respond is very fast, When I query for one of this filtered dimensions and a metric the respond is fast (10 seconds). But when I query for two of this filtered dimensions and metric the respond take 25 minutes. I checked Essbase app log and found this:

+[Mon Nov 15 19:56:01 2010]Local/TestSec5/TestSec5/admin/Info(1013091)+
+Received Command [MdxReport] from user [admin]+

+[Mon Nov 15 20:28:28 2010]Local/TestSec5/TestSec5/admin/Info(1260039)+
MaxL DML Execution Elapsed Time : [1947.18] seconds

When I look the MDX query generated by OBI I see that the aggregation process is doing in the fly in the members filtered of the crossjoin of two dimensions:

With
set [CATALOGO_INSTITUCIONAL2] as '[CATALOGO_INSTITUCIONAL].Generations(2).members'
set [CATALOGO_PRESUPUESTARIO2] as '[CATALOGO_PRESUPUESTARIO].Generations(2).members'
*member [METRICAS_PRESUPUESTARIAS].[MS1] as 'AGGREGATE(filter(crossjoin (Descendants([CATALOGO_INSTITUCIONAL].currentmember,[CATALOGO_INSTITUCIONAL].Generations(7)),Descendants([CATALOGO_PRESUPUESTARIO].currentmember,[CATALOGO_PRESUPUESTARIO].Generations(7))),(([CATALOGO_INSTITUCIONAL].CurrentMember.MEMBER_ALIAS = "01.01" OR [CATALOGO_INSTITUCIONAL].CurrentMember.MEMBER_Name = "01.01")) AND (([CATALOGO_PRESUPUESTARIO].CurrentMember.MEMBER_ALIAS = "G" OR [CATALOGO_PRESUPUESTARIO].CurrentMember.MEMBER_Name = "G") OR ([CATALOGO_PRESUPUESTARIO].CurrentMember.MEMBER_ALIAS = "I0101" OR [CATALOGO_PRESUPUESTARIO].CurrentMember.MEMBER_Name = "I0101") OR ([CATALOGO_PRESUPUESTARIO].CurrentMember.MEMBER_ALIAS = "S01" OR [CATALOGO_PRESUPUESTARIO].CurrentMember.MEMBER_Name = "S01"))),METRICAS_PRESUPUESTARIAS.[Compromiso])', SOLVE_ORDER = 100*
select
{ [METRICAS_PRESUPUESTARIAS].[MS1]
} on columns,
NON EMPTY {crossjoin ({[CATALOGO_INSTITUCIONAL2]},{[CATALOGO_PRESUPUESTARIO2]})} properties ANCESTOR_NAMES, GEN_NUMBER on rows
from [TestSec5.TestSec5]

Can somebody tell me if is possible to change the way in that OBI built the query or if is possible to use aggregations previously materialized of essbase?
Comments
Locked Post
New comments cannot be posted to this locked post.