OBIEE11g - Hierarchy parent-child with a factable measure(poor performance)

Hi
I have a star model with a hierarchy parent child, joined to the fact table.
Creating a new analysis, and adding the hierarchy column with any other field from any dimension (on selected columns or filters) all works fine, and the hierarchy displays every level very fast.
But adding a measure from the fact table, the hierarchy performance drops dramatically and I have to wait 20-30 seconds to see each new level displayed.
Taking a look at the SQL launched, seems to be all right:
The measure is a COUNT(DISTINCT factable.field) and the group by is done by Parent,Child fields in the hierarchy table.
Is there any other way to set up this hierarchy? Why the measures are reducing the performance?
Any comment will be helpful.
Thanks in advance.

Try these
Use Oracle Enterprise Manager (EM) URL to monitor end to end OBIEE real time performance: http://<server>:7001/em
In Oracle Business Intelligence 11g, the perfmon URL is still valid to use i.e. http://<server>:9704/analytics/saw.dll?Perfmon
Check these
http://www.rittmanmead.com/files/biforum2012/ranka_performance.pdf
http://docs.oracle.com/cd/E17904_01/web.1111/e13814/jvm_tuning.htm
https://blogs.oracle.com/pa/entry/obiee_ibm_jdk_tuning_for
Support note OBIEE 11g Infrastructure Performance Tuning Guide Doc ID 1333049.1
If helps mark and update back :)

Similar Messages

  • Rollup calculations in Account hierarchy (parent-child type)

    Hi,
    I want to create a parent-child relationship type Account hierarchy using Universe. The hierarchy has to support different set of calculations for roll ups action for different branches in the same level.
    Eg.
          Balance Sheet
              (+)Assets
              (-)Liabilities and Owners Equity
          Net Income
           (+)Operating Profit
           (+)Other Income and Expenses
           (-)Taxes
    Balance Sheet = Assets -Liabilities and Owners Equity
    Net Income = Operating Profit + Other Income and Expenses - Taxes
    Regards, Sujeev

    Measures automatically roll up.
    Whether you define your measure with an aggregate or not, if the projection is set to Sum, it will roll up.
    Measures that are to be summed should have Sum() wrapped round them at the universe level though.
    What you may have is a lot of positive values in your database and no negatives.
    If that's the case, you will need to use a case statement to determine the sign of the value.
    E.g.
    Sum(CASE WHEN Type='Asset' THEN table.value WHEN Type='Liability' THEN -1*table.value ELSE 0 END)

  • Value based hierarchy (parent-child)

    Does anybody have any experience in modeling a parent-child dimension ( value based hierarchy instead of level based ) in OBIEE?
    Swapan.

    I've done some work with this, and it hasn't been easy going. There is no built-in ability to form a hierarchy of measure columns, at least nothing that can be predefined as the drill for a fact column. For example: I have 220 details of expense that have an exact arrangement with 5 levels and subtotals. Besides the expense detail there are say 4 dimensions, so the expense detail would be the 5th dimension. I have both arrangements in my rpd: 4D and 5D. They can be used together or separately. The 4D basically has 1000's of measures and there is no relationship between them besides the display arrangement in Answers. The 5D has a 5 column dimension that can drill the expense column from Total_Expense down to the 220 rows of detail expense.

  • PDW : Hierarchy parent/child

    Hi,
    I'm working with a PDW Appliance as source and destination.
    I need to create a parent/child hierarchy.
    My child surrogate key is generated inside my dataflow, then I'm doing the initial loading of all my data minus the surrogate key for the parent column.
    I'd like to avoid to run update statements against my destination table (because of the replication) and/or have to create temp tables.
    I thought about keeping in memory (Recordset Destination) all my dataset and then doing the look up in a script component before doing the final insert in append mode but the performance are awful.
    Any idea ?
    Thx for your help.
    Bertrandr

    Thanks to have remind me about the CacheTransform component :)
    The dataset is about 200 000 rows.
    I have also tested another option.
    Instead of performing an initial load and then look up
    I'm doing a multicast pointing to 2 RecordSet Destination.
    Both are the same except it's 2 differents object variables.
    Then in another dataflow I read both dataset and use a MergeJoin on the business key to get my parent surrogate key.
    It works but I need to compare performances with your solution.
    Thanks a lot !
    Bertrandr

  • Hierarchy Parent Child Relation Storage

    Hello All,
                I need to display hier. info in parent-child format. Any ideas on how to store parent child relationship in an ODS....I can view this format in the infoobject display screen for hierarchy...but cannot get this format to display..
    EX: Parent - child1,2,3,4
          child1- child 1-1,1-2,...
          child2 - child 2-1,2-2...
    thanks

    Spanyal,
    You will have to write a program to store this information in an ODS object. You will have to use /BIC/h<IO> Table to read the data and update a custom table. You will have to do some basic checks like business content or not, plan version, time dependency etc in the entry screen and then the program can read the hierarchy table in the format you want.
    I am not aware of any simpler way to populate hierarchy data into an ods object in a meaningful fashion.
    -Saket

  • Graphs and parent-child with loops and duplicates

    There is a parent-child relation in the table t(prnt, chld) which allows duplicates (A->B, A->B) and opposite paths (A->B, B->A), and complicated loops. Is there a way to identify rows that form any separate "connections network" and assign a "name" to them of any kind (letter, number, wahtever)? I try to use WITH recursive clause to identify and group rows belonging to one graph but with no luck. Any help would be appreciated.
    thank you

    Frank, I posted inputs for all graphs (multiple inserts) and some allowable outputs for one graph. For all cases (ie. graphs) the rule is the same:
    1. identify all nodes belonging to a graph
    2. "name" that graph (min, max or whatever you like)
    3. print the output in the form (node_belonging_to_a_graph, name_of_the_graph) for all identified graphs
    And as you said, I am somewhat flexible. I don't want to constrain the problem with saying min, max because it's not important how you name it, but the way which is somehow natural and fits with requirements is the usage of nodes' values.
    You ask me if (1,1),(2,1),(3,1) is also OK as an output for sample graph (1,2)+(2,3). Yes it is. It is one of those I posted but with additional node which is chosen as a name for a graph. But as you can guess it doesn't matter which node you choose, and the additional information about a node named with its own name is not as important and the information that all other nodes are named with that name but it is 100% acceptable. If you changed the naming convention and started to use letters instead of node values then yes, it would be a must to have the output in the form (1,a),(2,a),(3,a).
    You also ask me about the result for 90x data inserted as 5 rows: (901,902)..(906,904) and present sample result:
    901 902
    905 902
    906 902
    And the answer is no, it is not good result. It misses the information about the nodes 904 and 903 which belong to this graph too. The correct result could be:
    901 902
    905 902
    906 902
    903 902
    904 902
    or any other "combination" which presents 5 nodes with the name of the sixth (in this case of 6-node graph). Just one have to be picked, it doesn't matter which one. The "vertical" order is also irrelevant.
    As you can see there is a lot of room that gives acceptable result. I don't want to constraint it because it can influence performance which is important when dealing with graph structures in relational databases (RDBMS are not predestined to easily cope with that sort of information). It can also influence the chosen algorithm and I'd like to pick the fastest one which gives acceptable result.
    Two numbers x and y are in the same group (graph) if (and only if) at least one of the following is true:
    (1) they appear on the same row together (it doesn't matter which number is in which of the 2 columns), or
    --(2) x appears on the same row with a third number, z, and z is in the same group as y--
    (2) there are other edges (entries) in the table that form a "path" from x to y. And because the direction of the path is not important for the problem (ie. the parent-child table structure can be forgotten for a moment), the path means "there exists connection" between x and y aka "you can walk from x to y".
    The output consists of 2 columns: id (which is unique in the result set) and grp (which identifies the group) *[correct]*
    The id column will always be one of the numbers in the group *[correct]*
    It doesn't matter what the grp column is, or even what data type, as long as it distinguishes between the different groups. *[correct, but as you noted using one, picked number from a graph is the prefferable way]*
    If there are N distinct numbers in the group, I need N rows of output for that group, with id showing all those distinct numbers. *[correct, but if you choose your naming convention as naming a graph with the value of the node belonging to it you can ommit the node which is named for itself (but it doesn't hurt is such row appear in the result)]*
    You ask me if the graph is directed. No it's not. Your example (x,y) and (y,x) is great, and it can be concluded from my first post when I say that "opposite paths" (A->B, B->A) exists. What matters is the connection between the nodes. The parent-child table somehow imposes that direction is important, but for this problem it is not.
    One of the motivations for my post is to know what other people think without affecting their minds with my approach. I don't want to skew anybody's mind into my solution which works, but it's not effective. I don't mind showing it but I kindly ask you to think about the problem before I post it. Diversity of approaches helps to distill the best one.
    As I said I did it with the usage of sys_connect_by_path. If it doesn't appear to you as possible usage then it is likely that I don't use it efficiently. Please understand, I will post it if you ask me one more time but if you can live for a while without my inefficient solution and suggest something with WITH clause I would appreciate it.
    There is no exact result I expect. There are many results which are correct and acceptable. They all must follow the rules described at the beginning.
    Thank you
    Edited by: 943276 on Jun 28, 2012 1:32 AM

  • Updating records for parent & child with integrity constraints

    Hello, I haven't used oracle in a few years and now running a lab and need to make a few changes for testing. no production data at all.
    What is the easiest way to change the parent and child tables? When I try to change the parent, oracle barks that the child is neglected, when i try to change the child first, then the parent is mad.
    If I need to set up a trigger, what is the simplest form?
    thanks much!

    Depends on what you want your data to look like. Since it's test, I would do what janeesh said. Disable the constraint on the tables, write a script to UPDATE all the necessary values in the parent and child table, and then re-enable the constraint.
    I like the idea of setting the constraint to ENABLE VALIDATE afterwards to check the data in the tables. This verifies that all the updates you did comply with the constraint. Essentially this just checks to see if you hosed anything in either table.

  • Connect By Parent Child with @@@@@g5@@@

    Hi,
    I am having a problem to create a query wich has child accounts like @@B6565@@@@@@@ this in connect by clause. So that is not only one hundrerds of child account like that exist.
    What can I do about that to include all those accounts in my query of connect by clause.

    I don't see any problem here... Are you sure these are the records which cause problem?
    WITH T1 AS
    SELECT '1000@@@' Parent , '10101' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10110' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10111' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10112' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10120' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10121' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10124' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10151' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10152' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10153' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10154' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10155' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10158' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10170' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10171' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10172' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10173' Child FROM DUAL UNION ALL
    SELECT '1000@@@', '10174' Child FROM DUAL )
    SELECT  *
    FROM    T1
    START   WITH PARENT = '1000@@@'
    CONNECT BY NOCYCLE PARENT = PRIOR PARENT;*009*

  • Hierarchy (Parent-Child) drill-down report

    Good morning,
    I use Crystal Reports v12.3.0.601 & backend is Oracle - And I am a beginner.
    Attached JPG details my question/ problem - Thank you for your time.
    Regards,
    Sridhar Lam

    Hi Abilash,
    I tried what you suggested...it returns the entire tree stucture. (returns ALL folder structure with indent....runs into hundreds of pages)
    The problem I face is that...for a specific folder 'D7'...I need the structure....
    (possibly a drill-down or drill-up structure or both if it is in the middle of the tree structure)
    Let me explain....
    My question is not that simple:
    1. If I am given a FOLDER_RSN = D7 (could be any...but I am picking one as required by my business here)
    2. Objective is to display drill-down/ drill-up/ or both structure of D7
    Scenarios:
    a. D7 could be a top-node parent
    b. D7 could be a sub-parent under top-node parent.
    c. D7 could be a sub-parent under another sub-parent
    I would prefer a SQL statement referring the image...makes it easy to solve !!!
    Thank you,
    Regards,
    Sridhar Lam

  • Entity Currency Adj, Parent Currency adj for Parent-child with same currenc

    Hi,
    In 11.1.2.1 I noticed that if parent and base entity currencies are same, entity currency and entity currency adjustments equal parent currency and parent currency adjustments respectively. If the currencies are different, the entity currency total gets translated to parent currency and post that, we can pass adjustments at PCA level.
    I had an understanding that Entity Currency total always rolls upto Parent currency irrespective of whether the currencies of base and parent are same/different.
    Is this something new with version 11 or has it always been like this?
    Thanks,
    S

    I don't follow your explanation. To be very clear: <Parent Curr Adjs> is NOT the translation of <Entity Curr Adjs>. This will never happen. HFM takes <Entity Curr Total> and translates that into the target currency. The only time <Parent Curr Adjs> will equal <Entity Curr Adjs> is when they are indeed the very same currency. In that case there is no translation but instead two names for the same data set.
    --Chris                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Game is running with low resolution and poor performance

    Hi, I have purchased dv4 entertainment laptop 2 years back. Recently, I installed Ford Collections - Car game in my laptop, but it is not running properlly which means that the resolution is little poor and it is very poor and getting slow when playing multiplayed in the laptop. Also, I am unable to install the Adventures game in my machine, getting DirectX error. I am not sure this issue is because of the in-adequate configration of Graphics card Please guid me to reslove this issue.

    Compressed using compressor, burned DVD with I-DVD.
    Compressed to what codec using Compressor?
    iDVD uses its own internal encoder -it has probably gone through two compression cycles as a result, which will hammer the quality.
    You should feed iDVD with a file from FCP using this method instead:
    File > Export > QuickTime Movie > Current Settings. You can choose Self Contained or Reference.
    Self Contained is preferable as it does not depend on the original footage and associated render files being present. It gives you a stand alone master from which to make the deliverables.

  • Parent-child hierarchy and fragmentation content

    Hello,
    I've tried to build simple model with OBIEE 11 using Oracle 11r2 as a data source. BMM has fragmentation content for fact table and few dimensions with different hierarchy types. It works fine with all hierarchy types except for parent child.
    When I build an answer with parent child hierarchy it terminates with error "Target data source does not support the operation".
    Does OBIEE 11 not support parent child with fragmentation content? Or am I missing something?
    Greetings
    Marcin

    I'm seeing the same issue. I've created a parent-child hierarchy along with two normal level-based hierarchies (one "normal", one skipped-level). The two level-based hierarchies work just fine in Answers. I can include them in the criteria, and data is displayed with the correct drilldowns.
    If I include the parent-child hierarchy, I get the same results as noted in the original post: "The layout of this view combined with the data, selections, or drills, or prompt values chosen, resulted in no data." I'm trying to look at the table view, with no filters.
    Interestingly, I can explicitly include that dimension's Parent column and Member column in the criteria, and data is displayed just fine.
    Here is the XML for the set of criteria that includes the separate Parent and Member columns (the one that works):
    SELECT s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11 FROM (
    SELECT
    0 s_0,
    "Retro_Biz"."Channels"."MEMBER" s_1,
    "Retro_Biz"."Channels"."PARENT" s_2,
    "Retro_Biz"."Products"."TOTAL_PRODUCT" s_3,
    "Retro_Biz"."Times"."YEAR" s_4,
    SPACE(1) s_5,
    SPACE(1) s_6,
    SPACE(1) s_7,
    IDOF("Retro_Biz"."Products"."Product"."Total Product") s_8,
    IDOF("Retro_Biz"."Times"."Time"."Year") s_9,
    "Retro_Biz"."Facts"."SALES" s_10,
    CAST(NULL AS DOUBLE) s_11
    FROM "Retro_Biz"
    UNION ALL
    SELECT
    1 s_0,
    "Retro_Biz"."Channels"."MEMBER" s_1,
    "Retro_Biz"."Channels"."PARENT" s_2,
    SPACE(1) s_3,
    SPACE(1) s_4,
    SPACE(1) s_5,
    SPACE(1) s_6,
    SPACE(1) s_7,
    SPACE(1) s_8,
    SPACE(1) s_9,
    CAST(NULL AS DOUBLE) s_10,
    REPORT_SUM("Retro_Biz"."Facts"."SALES" BY ) s_11
    FROM "Retro_Biz"
    ) djm ORDER BY 1, 5 ASC NULLS FIRST, 4 ASC NULLS FIRST
    Here is the XML that includes the Parent-Child hierarchy (the one that fails):
    SELECT s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12 FROM (
    SELECT
    0 s_0,
    "Retro_Biz"."Channels"."MEMBER" s_1,
    "Retro_Biz"."Products"."TOTAL_PRODUCT" s_2,
    "Retro_Biz"."Times"."YEAR" s_3,
    CASE WHEN ISLEAF("Retro_Biz"."Channels"."Channel") THEN 1 ELSE 0 END s_4,
    IDOF("Retro_Biz"."Channels"."Channel") s_5,
    SPACE(1) s_6,
    SPACE(1) s_7,
    SPACE(1) s_8,
    IDOF("Retro_Biz"."Products"."Product"."Total Product") s_9,
    IDOF("Retro_Biz"."Times"."Time"."Year") s_10,
    PARENT("Retro_Biz"."Channels"."Channel") s_11,
    "Retro_Biz"."Facts"."SALES" s_12
    FROM "Retro_Biz"
    WHERE
    ISROOT("Retro_Biz"."Channels"."Channel")
    UNION ALL
    SELECT
    1 s_0,
    SPACE(1) s_1,
    SPACE(1) s_2,
    SPACE(1) s_3,
    CAST(NULL AS INTEGER) s_4,
    SPACE(1) s_5,
    SPACE(1) s_6,
    SPACE(1) s_7,
    SPACE(1) s_8,
    SPACE(1) s_9,
    SPACE(1) s_10,
    SPACE(1) s_11,
    "Retro_Biz"."Facts"."SALES" s_12
    FROM "Retro_Biz"
    WHERE
    ISROOT("Retro_Biz"."Channels"."Channel")
    ) djm ORDER BY 1, 4 ASC NULLS FIRST, 3 ASC NULLS FIRST

  • Increment Counter in Parent / Child

    I am generating classes from an existing schema.
    I have two tables that are Parent / Child with the parent containing an
    incrementing counter that is part of the Child primary key.
    Is there a way to describe this relationship so that the generated code has
    the rationship properly described?

    I have a parent table, 'CARD_HOLDER' that has a key of ID_CARDHOLDER
    (integer) and a row of CURRENT_SEQ_NO (integer).
    The child table, 'CARD' has a key of ID_CARDHOLDER (integer) and SEQ_NO
    (integer) [both colums are the key value].
    When a new card is added to the 'CARD' table, the CARDHOLDER.CURRENT_SEQ_NO
    is incremented and the CARD.CURRENT_SEQ_NO is set equal to it.
    Can I emulate this behavior in KODO?
    When a new 'card'
    "Abe White" <[email protected]> wrote in message
    news:[email protected]..
    Sorry, could you describe the table structure in more detail? I'm not
    sure I follow.

  • Parent-Child post order exception; FK constraint violation

    I've seen the discussion and answer recently in this forum for configuring BC4J
    to post the parent first, then the child, to avoid the FK constraint exception??
    So I have to appologise for re-asking, but I can't get the search function to find
    any thing that needs multiple key words. :(
    I've got two Entities, parent child, with Links, and Association between them on the FK.
    What was the trick to get the framework to correctly post the parent first??
    I've looked over the FkLink and FkAssoc and all these components are included by
    the AppModule...
    Thanks, curt

    Edit the association object between your parent and child entities and set the "Composition" flag (Composite Assocation in the UI), to true. You may elect to enforce "CascadeDelete" option, if you have database Cascade-delete turned on between the associated tables and want to avoid multiple DMLs for the details.

  • Parent child hierarchy and measure using lookup

    Hi,
    I'm using OBIEE 11.1.1.5 and I have an issue with a parent child hierarchy, which is setup like case 4 in this example . When I create a simple analysis using the hierarchy and a simple measure, it works fine. But when I try to use a calculated measure using a lookup formula, I get the following error:
    Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 43119] Query Failed: [nQSError: 46036] Internal Assertion: Condition pTableRef->GetLeftTable() && pTableRef->GetLeftTable()->IsTableReference(), file server/Query/Optimizer/ServiceInterfaceMgr/Src/SQOIDriveJoinGenerator.cpp, line 568. (HY000)
    Does anyone know how to get past this error?
    Thanks,
    Mihai

    Hi,
    I'm using OBIEE 11.1.1.5 and I have an issue with a parent child hierarchy, which is setup like case 4 in this example . When I create a simple analysis using the hierarchy and a simple measure, it works fine. But when I try to use a calculated measure using a lookup formula, I get the following error:
    Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 43119] Query Failed: [nQSError: 46036] Internal Assertion: Condition pTableRef->GetLeftTable() && pTableRef->GetLeftTable()->IsTableReference(), file server/Query/Optimizer/ServiceInterfaceMgr/Src/SQOIDriveJoinGenerator.cpp, line 568. (HY000)
    Does anyone know how to get past this error?
    Thanks,
    Mihai

Maybe you are looking for