Dimensions with buffer_pool = keep

Hi,
We have a data warehouse built with WareHouse Builder more than 5 years ago. At that time, on a 8i database, it was suggested that we put our dimensions with buffer_pool = keep to get a faster response in Discoverer.
We have a fact table partitioned by month (3 years), with bitmap indexes + 4 dimensions without indexes.
My question : is it still valuable to set buffer_pool = keep with a 10G database for dimensions?
Would it be faster if we put the buffer_pool = default and add some indexes to the dimensions?
Thanks.

Fabrice, it would be very unusual to keep a 2G table and trying to do would be unlikely to aid performance in most environments I have every seen.
In fact unless you have a very strong knowledge of how the application works and the processing logic is fairly static the great majority of sites are better off to not use a keep or recycle buffer pools and to allow Oracle to manage the buffer pool based on demand.
You are probably trying to tune a specific query. You might want to look at the size of each table and the filter conditions available. Verify that the plain join order is correct. If not manipulate the plan to get what you believe should be the correct join order.
If you are just trying to improve performance against one table then check to make sure that the right indexes exist to support the most important quries. This would also be a step in the process above.
HTH -- Mark D Powell --

Similar Messages

  • Load hierarchical attribute dimensions with Integration Services?

    Hi everybody,
    I need to load product dimension which is organized in a relational table like this:
    Product (parent_code, member_code, member_alias, brand, consolidation, formula)
    Every product has a brand and I need to load brand as attribute dimension. The thing is Brand is not flat but it has it's own hierarchy. For Brand I have another relational table where data is organized parent-child like this:
    Brand (brand_parent_code, brand_child_code, brand_child_alias).
    I have used in the past Integration Services but with flat attribute dimensions.
    Can I load hierarchical attribute dimensions with Integration Services? If yes, how do I do it, how do I specify the hierarchy?
    Thank you,
    Daniela

    Graham,
    This is definitely a supported feature in EIS/9.3.1/ASO. I have many models with this type of structure. How you set it up can vary. Usually my Attribute Hierarchies are not that deep, only two to three levels, maybe four in a rare case, so I don't usually use a parent child table to set up the hierarchy (I'm not saying that it won't work, it might, I haven't tried, but same steps should apply). In a typical model I will have my stock table which has a buyer field. Then in another table I will have my attribute structure which will have columns for buyer, teams, and categories.
    In EIS OLAP model, you add your attribute hierarchy table and use a join to link it to the main stock table, joining on the buyer field (you are now going from a "star" schema to a "snowflake". Go into the properties and make sure you define all the columns as "Attributes".
    Then in Metadata model, drag your categories attribute onto the outline, then drag the teams and set it as a child of categories and finally drag buyer and set as child of teams. You only set the attribute association for the buyer back to the base dimension.
    When you run your dim build it will set up your attribute dimension correctly.
    Some things to keep in mind, make sure you have a process that ensures for every stock code you have in the main table, you have a matching one in your attribute dim table.
    Sometimes, depending on how much manipulation I need to do, instead of joining the tables in EIS I will go back to relational source and create a view that joins the two tables together, then in my OLAP model, I have one table that has three attribute columns, one column for the buyer and then the other two for team and category, from that point setting up in metadata model is the same.
    Good luck, let me know if you run into trouble.

  • Rename externally created dimension (FCM) and keep the same ID

    Hi,
    Urgent, need your help !
    I'm facing an issue regarding renaming externally managed dimensions (from FCM).
    Currently if i rename a dimension using third part tool, then FCM create a new entry into my "data/state/autogen_dimension.xml" file
    with a new ID and the previous one is kept. So i'm having data consistency issue.
    How can i update  dimensions and dimension values (externally managed) keeping previous ID please ?

    FCM and Externally Managed Dimensions are two separate features. 
    If your dimension is being created by FCM and you want to change the name of the dimension itself while keeping the same ID, I think you'd need to go into ./data/state/fcm.dvals.xml[.gz] and ./data/state/fcm.conflicts.xml[.gz] and rename there, as well as change it in your FCM data feed (where you pass in the dimension schema).  If you are actually talking about EMTs, I'm not sure - possibly the same approach.  Certainly just renaming them in the data feed/schema would assign a new ID as the logic would naturally assume this was a new dimension (usually there is a separate display label attribute to support business users changing the label while the name is used as a system ID).
    HTH
    Michael

  • Two Cube dimensions with the same name.

    Hi
    If I have a cube dimension that has the same name as another cube dimension, will this be an issue when quering the cube through 1) Excel 2) SSRS or Cognos Reports?
    For instance: The Database dimension DimOrganization exists in cube A as well as
    DimOrganization_Dep. Both dimension has the same attribute names and the same hierarchy names.
    Their database names are different. (object_ID and Object_name differs) 
    In the cube I change the name of DimOrganization_Dep to DimOrganization.
    This seem to work when I query the cube in Excel, the mdx looks like this;
    SELECT NON EMPTY { [Measures].[AntalNotNull] } ON COLUMNS, NON EMPTY { ([Dim Organization].[Yes- No].[ Yes- No].ALLMEMBERS * [Dim Organization].[Yes- No].[Yes- No].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME
    ON ROWS FROM [TEST] CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
    Anyone knows if this kind of setup will result in problems when quering from SSRS reports or Cognos?
    And/or if even though I get it right in the cube (quering from Excel) it might as well give me the wrong result the next time?
    Cheers
    /Martin

    Hi
    Thanks for the reply.
    I have tried and yes I can change then cube dimension namn to that of another cube dimension.
    For instance if i have Cube Dimension "DimA" and "DimB" to begin with , then  I change the name of the cube dimension "DimB" to "DimA". So now I have two Cube dimensions with the same name.
    It works to deploy and process and Excel somehow understands which one is which.
    Both is present in the same cube as you can see from the MDX above.
    The tricky part is how does the mdx return the correct result when the mdx looks like this (and it dpoes return the correct result).?
    Cheers
    /Martin

  • TS2776 my ipod can't sync with itunes.Keeps saying that itunes was unable to load data class information from sync services

    my ipod can't sync with itunes.Keeps saying that itunes was unable to load data class information from sync services

    See TS2690: iTunes for Windows: "Unable to load data class" or "Unable to load provider data" sync services alert.
    tt2

  • The Dimension with ID ... doesn't exist in the collection

    BPC 7.5 SP3, MS SQL 2005
    I am processing an applicaiton using the Admin console.  Choosing "Modify Application", checking the "Process Application" checkbox and clicking "Modify Application" to rebuild the app.  The result is successful completion with an error on the details portion of the display under "Modify Fact Table" that lists and exception in the Log.  The log in the management console shows the error
    Microsoft.AnalysisServices.ItemNotFoundException: The "Dimension" with "ID" = PROFITCENTER doesn't exist in the collection.
    The ProfitCenter dimension is one of the application's dimensions.
    I can process the ProfitCenter dimension and process this application as part of the dimension processing and it is successful.
    I can optimize this application and it is successful.
    The application appears to be working properly.
    I can open the cube in SQL Server Analysis Services and I can see the ProfitCenter dimension and browse its members.  I can open the application cube and browse it.
    I checked the profitcenter dimension member table and compared it to the fact tables and all the facts are base level members that are not calculated members.
    Has anyone seen this error?  Is this just a spurious message I can ignore or is there something really wrong?

    We were able to solve this issue today.  We turned off Insight and reprocessed the application.  The error did not appear.  I hope this works for you too.

  • OWB10gR2 - Cube with relations to a dimension with more than one hierarchy

    Hi,
    I have defined a time dimension with two hierarchies. The standard hierarchy with the levels year-> month-> day,
    and a week hierarchy with the levels year-> week-> day.
    When I define the cube i choose dim_time on the dimension tab of the cube and select the level day for that dimension since this is the lowest level of both hierarchies.
    When I validate the cube I get the following error Message: VLD-0398: In the Cube test_cube, the dimension DIM_TIME has 2 hierarchies but Cube does not have reference to all lowest levels of these hierarchies.
    Validation details: The Cube should refer to a leaf levels of all multiple hierarchies of the Dimension.
    Do I have to add the dimension to the cube several times? or is it maybe another way to fix this? To me it seems a bit messy to add a dimension for each hierarchy.
    And just as a comment, Yes i know OWB now has a time dimension wizard but I have chosen not to use this at the moment.. ;)
    Regards Ragnar

    Hi, i assume this logic is for Dimension formula?
    If you have multiple hierarchy like ParentH1 and ParentH2 you should use FormulaH1 and FormulaH2 and not FORMULA column.
    in FORMULAH1
    [Account.H1].[Account_A] / [Account.H1].[Account_B]

  • Order Menbers in Dimension with Planning v3.3

    Hi all,
    I have a problem with menbers order in a old version of Hyperion Planning v3.3
    I have the dimension Years with this order of menbers:
    FY09
    FY10
    FY08
    when i add another year, i received an error saying that FY09 is already created, in this version of planning don't exist buttons to reorder menbers or cuts and paste options.
    I tried to find the order id in the planning repository but i have only see dimensions with a field for the order of apearence.
    I think that planning uses the Id of creation to order the menbers in planning, then i tried to change the id in the repository to resolve the problem but with no success.
    Anyone can give me any sugestion.

    Hi,
    You could have a similiar post about moving year members :- Re: Non standard Year member in Planning Years dimension
    The post is about moving "No Year" but the logic is the same for other years.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Dimension with 2 roles and 2 hierarchies used in 2 cubes

    Hi,
    I have a dimension in which there are two dimension roles (roleA, roleB) defined as well as two hierarchies (hierarchyA, hierarchyB). Currently hierarchyA is set as default. (Not because that is in fact the default one, only because OWB forces one to choose a default)
    I need to define two cubes (cubeA, cubeB). CubeA will use the dimension with roleA and cubeB will use the dimension with roleB.
    Is it possible to tell cubeA to use/see/make available only hierarchyA and cubeB only hierarchyB? HierarchyA makes no sense in cubeB so I want to "specify" hierarchyB for cubeB.
    Thanks,
    Juanita

    A different issue but possibly related:
    I have a ROLAP cube with one of the dimensions containing multiple hierarchies. If I deploy this with deployment option set to "Deploy data only", it works 100%. As soon as I change the deployment option to "Deploy All", I get a VLD-0398 error.
    I need to choose "Deploy all" since the cube metadata must be deployed to the OLAP catalog in order for Disco OLAP and BI Spreadsheet Add-In to see the cube.
    First question:
    Is it possible to deploy to the OLAP catalog if the cube has a dimension with multiple hierarchies?
    Second question:
    If it is not possible, what is the workaround?
    Thanks,
    Juanita

  • Mapping Dimension with a composite primary key in AWM

    Hi, I have a dimension with 3 levels in a snowflake scheme. The Primary key (PK) of one of them is a composite pk.
    Let's say: table1 (code_t1 (pk), desc_t1), table2 (code_t2 (pk), code_t1 (pk+fk), desc_t2)) and table3 (code_t3 (pk), code_t2 (fk), code_t1 (fk), desc_t3), being table3 the base level table.
    I am using AWM 11.2.0.1.0A
    My questions are:
    1) can I have a level with a composite PK?
    2) if yes, how should I do the mappings using AWM? It seems like you only can have one filed for the source column in the Mapping pane.
    3) if no, is there any workaround?
    Thank you.

    I just tried this in AWM and it is clearly buggy in this area, in part because it is trying to change the underlying representation.
    If you export the dimension to XML you should find an entry that looks like this for each level
    <HierarchyLevelMap
    KeyExpression="..."
    Query="..."
    JoinCondition="...">
    </HierarchyLevelMap>
    The 'Query' is the name of the table you are selecting from. For example, your level2 should have
    Query="TABLE2"
    The 'KeyExpression' is the expression that defines the AW dimension member for that level. For example, your level2 should have
    KeyExpression= '(TABLE2.CODE_T2 || TABLE2.CODE_T1)'
    The 'JoinCondition' defines how to join the table for a child level to that of its parent. For example, your level3 would ideally look like this
    JoinCondition='(TABLE3.CODE_T2 = TABLE2.CODE_T2) AND (TABLE3.CODE_T1 = TABLE2.CODE_T1)'
    But in your case it must be something different, probably 'TABLE3.CODE_T2 = (TABLE2.CODE_T2 || TABLE2.CODE_T1)'.
    AWM must derive its Parent field from this JoinCondition in some way, and it appears to mess it up when you use concatenated key expressions. The workaround is to hand edit the XML to specify the JoinCondition correctly for your case and recreate the dimension from that XML. I would then avoid editing this particular mapping in AWM since it will mangle it.

  • How to create a working day/holiday attribute in Time Dimension with OWB ?

    Hello everybody,
    I am trying with no success to create a Time Dimension (with the wizard it would be easier...) with a working day or holiday attribute (0 or 1) to be able to calculate measures only on working time !!! I am totally sure it's possible, obviously, but I found nothing on forums... Could you help me ??
    I use OWB 11g, I need all fiscal year/quarter/month/week and all calendar year/quarter/month/week attributes so without any wizard it would be quite impossible... thank you for your help !
    NB: of course I know how to define if a day is a working one or not, but I currently can't add any columns in Time dim created with wizard...
    Francois
    Edited by: [email protected] on Jun 15, 2009 8:24 AM

    Hi,
    First of all, thanks everyone for your help.
    I did several tests this morning.
    First of all, i've tried with time_from = 000000 and time_to = 235959 (23:59:59 CET) and the activity has been created with Time From = 04:00:00 and Time To = 03:59:59
    Strange no ??
    I've also tried with 230000 for time from and time to but the activity has been created with Time From = 03:00:00 and Time to = 03:00:00
    I cannot understand the logic behind....
    Thanks,
    Johnny Baillargeaux

  • Modelling Time Dimension with Fact Table containing Start Date and End Date

    Hi Gurus,
    I have a time dimension with Year till Date. I have a fact table which consists of Start Date, End Date, Person ID, Department ID.
    How do i design Time dimension with fact table the below scenario
    In the dashboard i have start Month and End month as prompts.
    In the report i need to display Count(Person ID) > Start Date and < End Date along the trend.
    For instance, i have selected Jan-2009 as start date and Apr-2009 as End Date, then i need to display Count(Person ID) of Jan-2009, Feb2009, Mar-2009 andApr-2009.
    I Can not connect Time dimension with only Start Date or only with End Date to get the trend along the months.
    Please advice on the issue which i am having.

    Hi,
    Thanks for the response, Infact i tried using Complex join in physical layer. I have considered Time table joined with Fact table, and used >= and took and alias of the Time table and joined fact table using <=. When coming to BMM, i am not knowing how do i design this as if i merge the both the time dimensiona and its alias into single table, values will not be correct and if i make them as seperate columns. i can not show the trend as both are different columns.
    Can you please let know where i am going wrong.
    Thanks

  • One Dimension with Facts at different levels

    I currently have a single dimension with 5 levels. I have two fact tables that both connect to the dimension table but at different levels.
    For example. If we have a Dimension Country -> Region -> City and then two fact tables. One that has facts at the Region level and one that has facts at the City level.
    Is there a way to be able to have an answer that contains facts from both fact tables. So if there was a fact from City and the Region level? Everything I seem to try does not work. Would I have to create an additional aggregate table that aggregates the City level data up to the Region? Or is there a way to show the data at the lowest level and show either nulls or duplicate values for the additional records.
    Any help is greatly appreciated

    This has helped a little. I am now getting values from both levels. However, because i am summing the two values. The value from the upper level is now summing duplicate values. For example.
    Value 1 on its own
    Level1 Level 2 Level 3 Value 1
    1234 10 10 13.05
    1234 20 10 70.00
    1234 20 20 70.00
    1234 30 10 105.00
    1234 30 20 105.00
    Value 2 on its own
    Level1 Level 2 Level 3 Value 2
    1234 10 10 0.50
    1234 20 10 2.00
    1234 20 20 2.00
    1234 30 10 3.00
    1234 30 20 3.00
    What I am getting
    Level1 Level 2 Level 3 Value 1 Value 2
    1234 10 10 13.05 0.50
    1234 20 10 140.00 2.00
    1234 20 20 140.00 2.00
    1234 30 10 210.00 3.00
    1234 30 20 210.00 3.00
    Desired Outcome
    Level1 Level 2 Level 3 Value 1 Value 2
    1234 10 10 13.05 0.50
    1234 20 10 70.00 2.00
    1234 20 20 70.00 2.00
    1234 30 10 105.00 3.00
    1234 30 20 105.00 3.00
    Now, the problem with this is that Value 1 is a fact at Level 2 and Value 2 is a fact at Level 3. I have one dimension table and two fact tables. The join between the fact table for Value two and the dimension table is the same as the join between the dimension table and Value 1 only it is missing the last level of detail.
    I have then set the logical table source content tabs for each fact table to the corresponding levels.
    I thought this would be enough but i still don't get the desired result. I am not sure if this is possible with one dimension table.
    Any ideas would be greatly appreciated.
    Edited by: user10800227 on Jan 11, 2010 12:43 PM

  • Dimension with SOLVED LEVEL-BASED hierarchy (10.2)

    I'm trying to make a dimension with SOLVED LEVEL-BASED hierarchy (Oracle 10.2.0.1).
    Hierarchy is folowing:
    TOP
    |_OWNER
    |_OBJECT_TYPE
    |_OBJECT_NAME
    Script
    DROP TABLE SOLVED_DIM;
    CREATE TABLE SOLVED_DIM
    GID NUMBER,
    ETKEY VARCHAR2(100),
    PARENT_GID NUMBER,
    PARENT_ETKEY VARCHAR2(100),
    SHORT_DESCRIPTION VARCHAR2(100),
    LONG_DESCRIPTION VARCHAR2(100),
    TOP                    VARCHAR2(100),
    OWNER VARCHAR2(100),
    OBJECT_TYPE VARCHAR2(100),
    OBJECT_NAME VARCHAR2(100) ,
    TOP_ID NUMBER,
    OWNER_ID NUMBER,
    OBJECT_TYPE_ID NUMBER,
    OBJECT_NAME_ID NUMBER,
    ID NUMBER
    --Test dataset &#8470;1
    INSERT INTO SOLVED_DIM VALUES (7, 'TOP', NULL, NULL, 'TOP', 'TOP', 'TOP', NULL, NULL, NULL, 1, NULL, NULL, NULL, 100001);
    INSERT INTO SOLVED_DIM VALUES (3, 'SH', 7, 'TOP', 'SH', 'SH', 'TOP', 'SH', NULL, NULL, 1, 11, NULL, NULL, 100002);
    INSERT INTO SOLVED_DIM VALUES (3, 'OLAP_USR', 7, 'TOP', 'OLAP_USR', 'OLAP_USR', 'TOP', 'OLAP_USR', NULL, NULL, 1, 12, NULL, NULL, 100003);
    INSERT INTO SOLVED_DIM VALUES (1, 'SDIMENSION', 3, 'SH', 'SDIMENSION', 'SDIMENSION', 'TOP', 'SH', 'SDIMENSION', NULL, 1, 11, 111, NULL, 100004);
    INSERT INTO SOLVED_DIM VALUES (1, 'ODIMENSION', 3, 'OLAP_USR', 'ODIMENSION', 'ODIMENSION', 'TOP', 'OLAP_USR', 'ODIMENSION', NULL, 1, 12, 121, NULL, 100005);
    INSERT INTO SOLVED_DIM VALUES (0, 'OUD1', 1, 'ODIMENSION', 'OUD1', 'OUD1', 'TOP', 'OLAP_USR', 'ODIMENSION', 'OUD1', 1, 12, 121, 1211, 100006);
    INSERT INTO SOLVED_DIM VALUES (0, 'OUD2', 1, 'SDIMENSION', 'OUD2', 'OUD2', 'TOP', 'SH', 'SDIMENSION', 'OUD2', 1, 11, 111, 1111, 100007);
    commit;
    --Test dataset &#8470;2
    INSERT INTO SOLVED_DIM VALUES (7, 'TOP', NULL, NULL, 'TOP', 'TOP', 'TOP', NULL, NULL, NULL, 1, NULL, NULL, NULL, 100001);
    INSERT INTO SOLVED_DIM VALUES (3, 'SH', 7, 'TOP', 'SH', 'SH', 'TOP', 'SH', NULL, NULL, 1, 11, NULL, NULL, 100002);
    INSERT INTO SOLVED_DIM VALUES (3, 'OLAP_USR', 7, 'TOP', 'OLAP_USR', 'OLAP_USR', 'TOP', 'OLAP_USR', NULL, NULL, 1, 12, NULL, NULL, 100003);
    INSERT INTO SOLVED_DIM VALUES (1, 'DIMENSION', 3, 'SH', 'DIMENSION', 'DIMENSION', 'TOP', 'SH', 'DIMENSION', NULL, 1, 11, 111, NULL, 100004);
    INSERT INTO SOLVED_DIM VALUES (1, 'DIMENSION', 3, 'OLAP_USR', 'DIMENSION', 'DIMENSION', 'TOP', 'OLAP_USR', 'DIMENSION', NULL, 1, 12, 121, NULL, 100005);
    INSERT INTO SOLVED_DIM VALUES (0, 'OUD1', 1, 'DIMENSION', 'OUD1', 'OUD1', 'TOP', 'OLAP_USR', 'DIMENSION', 'OUD1', 1, 12, 121, 1211, 100006);
    INSERT INTO SOLVED_DIM VALUES (0, 'OUD2', 1, 'DIMENSION', 'OUD2', 'OUD2', 'TOP', 'SH', 'DIMENSION', 'OUD2', 1, 11, 111, 1111, 100007);
    commit;
    BEGIN
    -- ---- Creating Dimension (CWM2_OLAP_DIMENSION) -------------------------
    begin
    cwm2_olap_dimension.drop_dimension(user, 'SOLVED_DIM');
    exception when others then null;
    end;
    cwm2_olap_dimension.create_dimension(user, 'SOLVED_DIM', 'SOLVED_DIM disp', 'SOLVED_DIM pl', 'SOLVED_DIM short', 'SOLVED_DIM long');
    -- ----- Completing Dimension Metadata (CWM2_OLAP_DIMENSION_ATTRIBUTE) ---
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'ID', 'ID', 'ID', 'ID');
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'ET key', 'ET key', 'ET key', 'ET key', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'Parent ET key', 'Parent ET key', 'Parent ET key', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'Grouping ID', 'Grouping ID', 'Grouping ID', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'Parent Grouping ID', 'Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Long Description', 'Long Description', 'Long Description', 'Long Description', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Short Description', 'Short Description', 'Short Description', 'Short Description', true);
    -- ----- Completing Dimension Metadata (CWM2_OLAP_HIERARCHEY) ------------
    cwm2_olap_hierarchy.create_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'SOLVED_DIM_HI disp', 'SOLVED_DIM_HI short', 'SOLVED_DIM_HI long', 'SOLVED LEVEL-BASED');
    cwm2_olap_dimension.set_default_display_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI');
    -- ----- Completing Dimension Metadata (CWM2_OLAP_LEVEL) -----------------
    cwm2_olap_level.create_level(user, 'SOLVED_DIM', 'OBJECT_NAME', 'OBJECT_NAME disp', 'OBJECT_NAME pl', 'OBJECT_NAME short', 'OBJECT_NAME long');
    cwm2_olap_level.create_level(user, 'SOLVED_DIM', 'OBJECT_TYPE', 'OBJECT_TYPE disp', 'OBJECT_TYPE pl', 'OBJECT_TYPE short', 'OBJECT_TYPE long');
    cwm2_olap_level.create_level(user, 'SOLVED_DIM', 'OWNER' ,'OWNER disp',      'OWNER pl', 'OWNER short', 'OWNER long');
    cwm2_olap_level.create_level(user, 'SOLVED_DIM', 'TOP', 'TOP disp',           'TOP pl', 'TOP short', 'TOP long');
    -- ----- Completing Dimension Metadata (CWM2_OLAP_LEVEL_ATTRIBUTE) -------
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ID', 'OBJECT_NAME', 'ID', 'OBJECT_NAME_ID', 'OBJECT_NAME ID', 'ID');
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ID', 'OBJECT_TYPE', 'ID', 'OBJECT_TYPE_ID', 'OBJECT_TYPE ID', 'ID');
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ID', 'OWNER',      'ID', 'OWNER_ID', 'OWNER ID', 'ID');
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ID', 'TOP', 'ID', 'TOP_ID', 'TOP ID', 'ID');
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ET key', 'OBJECT_NAME', 'ET key', 'OBJECT_NAME_ET', 'OBJECT_NAME ET key', 'ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'OBJECT_NAME', 'Parent ET key', 'OBJECT_NAME PARENT', 'OBJECT_NAME Parent ET key', 'Parent ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'OBJECT_NAME', 'Grouping ID', 'OBJECT_NAME GID','OBJECT_NAME GID', 'Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'OBJECT_NAME', 'Parent Grouping ID', 'OBJECT_NAME PGID', 'OBJECT_NAME Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Long Description', 'OBJECT_NAME', 'Long Description', 'OBJECT_NAME LongDesc', 'OBJECT_NAME Long Desc', 'Long Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Short Description', 'OBJECT_NAME', 'Short Description', 'OBJECT_NAME ShortDesc', 'OBJECT_NAME Short Desc', 'Short Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ET key', 'OBJECT_TYPE', 'ET key', 'OBJECT_TYPE_ET', 'OBJECT_TYPE ET key', 'ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'OBJECT_TYPE', 'Parent ET key', 'OBJECT_TYPE PARENT', 'OBJECT_TYPE Parent ET key', 'Parent ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'OBJECT_TYPE', 'Grouping ID', 'OBJECT_TYPE GID','OBJECT_TYPE GID', 'Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'OBJECT_TYPE', 'Parent Grouping ID', 'OBJECT_TYPE PGID', 'OBJECT_TYPE Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Long Description', 'OBJECT_TYPE', 'Long Description', 'OBJECT_TYPE LongDesc', 'OBJECT_TYPE Long Desc', 'Long Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Short Description', 'OBJECT_TYPE', 'Short Description', 'OBJECT_TYPE ShortDesc', 'OBJECT_TYPE Short Desc', 'Short Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ET key', 'OWNER', 'ET key', 'OWNER_ET', 'OWNER ET key', 'ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'OWNER', 'Parent ET key', 'OWNER PARENT', 'OWNER Parent ET key', 'Parent ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'OWNER', 'Grouping ID', 'OWNER GID','OWNER GID', 'Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'OWNER', 'Parent Grouping ID', 'OWNER PGID', 'OWNER Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Long Description', 'OWNER', 'Long Description', 'OWNER LongDesc', 'OWNER Long Desc', 'Long Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Short Description', 'OWNER', 'Short Description', 'OWNER ShortDesc', 'OWNER Short Desc', 'Short Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ET key', 'TOP', 'ET key', 'TOP_ET', 'TOP ET key', 'ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'TOP', 'Parent ET key', 'TOP PARENT', 'TOP Parent ET key', 'Parent ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'TOP', 'Grouping ID', 'TOP GID','TOP GID', 'Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'TOP', 'Parent Grouping ID', 'TOP PGID', 'TOP Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Long Description', 'TOP', 'Long Description', 'TOP LongDesc', 'TOP Long Desc', 'Long Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Short Description', 'TOP', 'Short Description', 'TOP ShortDesc', 'TOP Short Desc', 'Short Description', true);
    cwm2_olap_level.add_level_to_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'OBJECT_TYPE');
    cwm2_olap_level.add_level_to_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'OWNER');
    cwm2_olap_level.add_level_to_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OWNER',          'TOP');
    cwm2_olap_level.add_level_to_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'TOP');
    -- + Mapping Dimensions +
    cwm2_olap_table_map.map_dimtbl_hierlevel(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OBJECT_NAME', user, 'SOLVED_DIM', 'OBJECT_NAME', 'OBJECT_TYPE');
    cwm2_olap_table_map.map_dimtbl_hierlevel(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OBJECT_TYPE', user, 'SOLVED_DIM', 'OBJECT_TYPE', 'OWNER');
    cwm2_olap_table_map.map_dimtbl_hierlevel(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OWNER',           user, 'SOLVED_DIM', 'OWNER',     'TOP');
    cwm2_olap_table_map.map_dimtbl_hierlevel(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'TOP',           user, 'SOLVED_DIM', 'TOP');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ID', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'ID', user, 'SOLVED_DIM', 'OBJECT_NAME_ID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ET key', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'ET key', user, 'SOLVED_DIM', 'ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent ET key', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Parent ET key', user, 'SOLVED_DIM', 'PARENT_ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Grouping ID', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Grouping ID', user, 'SOLVED_DIM', 'GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent Grouping ID', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Parent Grouping ID', user, 'SOLVED_DIM', 'PARENT_GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Long Description', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Long Description', user, 'SOLVED_DIM', 'LONG_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Short Description', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Short Description', user, 'SOLVED_DIM', 'SHORT_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ID', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'ID', user, 'SOLVED_DIM', 'OBJECT_TYPE_ID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ET key', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'ET key', user, 'SOLVED_DIM', 'ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent ET key', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Parent ET key', user, 'SOLVED_DIM', 'PARENT_ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Grouping ID', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Grouping ID', user, 'SOLVED_DIM', 'GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent Grouping ID', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Parent Grouping ID', user, 'SOLVED_DIM', 'PARENT_GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Long Description', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Long Description', user, 'SOLVED_DIM', 'LONG_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Short Description', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Short Description', user, 'SOLVED_DIM', 'SHORT_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ID', 'SOLVED_DIM_HI', 'OWNER', 'ID', user, 'SOLVED_DIM', 'OWNER_ID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ET key', 'SOLVED_DIM_HI', 'OWNER', 'ET key', user, 'SOLVED_DIM', 'ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent ET key', 'SOLVED_DIM_HI', 'OWNER', 'Parent ET key', user, 'SOLVED_DIM', 'PARENT_ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Grouping ID', 'SOLVED_DIM_HI', 'OWNER', 'Grouping ID', user, 'SOLVED_DIM', 'GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent Grouping ID', 'SOLVED_DIM_HI', 'OWNER', 'Parent Grouping ID', user, 'SOLVED_DIM', 'PARENT_GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Long Description', 'SOLVED_DIM_HI', 'OWNER', 'Long Description', user, 'SOLVED_DIM', 'LONG_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Short Description', 'SOLVED_DIM_HI', 'OWNER', 'Short Description', user, 'SOLVED_DIM', 'SHORT_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ID', 'SOLVED_DIM_HI', 'TOP', 'ID', user, 'SOLVED_DIM', 'TOP_ID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ET key', 'SOLVED_DIM_HI', 'TOP', 'ET key', user, 'SOLVED_DIM', 'ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent ET key', 'SOLVED_DIM_HI', 'TOP', 'Parent ET key', user, 'SOLVED_DIM', 'PARENT_ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Grouping ID', 'SOLVED_DIM_HI', 'TOP', 'Grouping ID', user, 'SOLVED_DIM', 'GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent Grouping ID', 'SOLVED_DIM_HI', 'TOP', 'Parent Grouping ID', user, 'SOLVED_DIM', 'PARENT_GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Long Description', 'SOLVED_DIM_HI', 'TOP', 'Long Description', user, 'SOLVED_DIM', 'LONG_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Short Description', 'SOLVED_DIM_HI', 'TOP', 'Short Description', user, 'SOLVED_DIM', 'SHORT_DESCRIPTION');
    -- + Validate and Refresh +
    cwm2_olap_validate.validate_dimension(user, 'SOLVED_DIM');
    cwm2_olap_metadata_refresh.mr_refresh;
    END;
    The first dataset works perfectly. But not the second one... There are some intersections at OBJECT_TYPE level.
    TOP->OLAP_USR->DIMENSION->OUD1
    and
    TOP->SH->DIMENSION->OUD2.
    When I'm watching TOP->OLAP_USR->DIMENSION->OUD1, I not only open OUD1, but OUD2 under SH (even skipping OBJECT_TYPE level). It's simple to do it for USOLVED LEVEL-BASED by assigning different Id for the same OBJECT_TYPES from different owners. But it looks like my ids are ignored for Solved hierarchy.
    Does anybody knows how to handle such situation?

    I'm trying to make a dimension with SOLVED LEVEL-BASED hierarchy (Oracle 10.2.0.1).
    Hierarchy is folowing:
    TOP
    |_OWNER
    |_OBJECT_TYPE
    |_OBJECT_NAME
    Script
    DROP TABLE SOLVED_DIM;
    CREATE TABLE SOLVED_DIM
    GID NUMBER,
    ETKEY VARCHAR2(100),
    PARENT_GID NUMBER,
    PARENT_ETKEY VARCHAR2(100),
    SHORT_DESCRIPTION VARCHAR2(100),
    LONG_DESCRIPTION VARCHAR2(100),
    TOP                    VARCHAR2(100),
    OWNER VARCHAR2(100),
    OBJECT_TYPE VARCHAR2(100),
    OBJECT_NAME VARCHAR2(100) ,
    TOP_ID NUMBER,
    OWNER_ID NUMBER,
    OBJECT_TYPE_ID NUMBER,
    OBJECT_NAME_ID NUMBER,
    ID NUMBER
    --Test dataset &#8470;1
    INSERT INTO SOLVED_DIM VALUES (7, 'TOP', NULL, NULL, 'TOP', 'TOP', 'TOP', NULL, NULL, NULL, 1, NULL, NULL, NULL, 100001);
    INSERT INTO SOLVED_DIM VALUES (3, 'SH', 7, 'TOP', 'SH', 'SH', 'TOP', 'SH', NULL, NULL, 1, 11, NULL, NULL, 100002);
    INSERT INTO SOLVED_DIM VALUES (3, 'OLAP_USR', 7, 'TOP', 'OLAP_USR', 'OLAP_USR', 'TOP', 'OLAP_USR', NULL, NULL, 1, 12, NULL, NULL, 100003);
    INSERT INTO SOLVED_DIM VALUES (1, 'SDIMENSION', 3, 'SH', 'SDIMENSION', 'SDIMENSION', 'TOP', 'SH', 'SDIMENSION', NULL, 1, 11, 111, NULL, 100004);
    INSERT INTO SOLVED_DIM VALUES (1, 'ODIMENSION', 3, 'OLAP_USR', 'ODIMENSION', 'ODIMENSION', 'TOP', 'OLAP_USR', 'ODIMENSION', NULL, 1, 12, 121, NULL, 100005);
    INSERT INTO SOLVED_DIM VALUES (0, 'OUD1', 1, 'ODIMENSION', 'OUD1', 'OUD1', 'TOP', 'OLAP_USR', 'ODIMENSION', 'OUD1', 1, 12, 121, 1211, 100006);
    INSERT INTO SOLVED_DIM VALUES (0, 'OUD2', 1, 'SDIMENSION', 'OUD2', 'OUD2', 'TOP', 'SH', 'SDIMENSION', 'OUD2', 1, 11, 111, 1111, 100007);
    commit;
    --Test dataset &#8470;2
    INSERT INTO SOLVED_DIM VALUES (7, 'TOP', NULL, NULL, 'TOP', 'TOP', 'TOP', NULL, NULL, NULL, 1, NULL, NULL, NULL, 100001);
    INSERT INTO SOLVED_DIM VALUES (3, 'SH', 7, 'TOP', 'SH', 'SH', 'TOP', 'SH', NULL, NULL, 1, 11, NULL, NULL, 100002);
    INSERT INTO SOLVED_DIM VALUES (3, 'OLAP_USR', 7, 'TOP', 'OLAP_USR', 'OLAP_USR', 'TOP', 'OLAP_USR', NULL, NULL, 1, 12, NULL, NULL, 100003);
    INSERT INTO SOLVED_DIM VALUES (1, 'DIMENSION', 3, 'SH', 'DIMENSION', 'DIMENSION', 'TOP', 'SH', 'DIMENSION', NULL, 1, 11, 111, NULL, 100004);
    INSERT INTO SOLVED_DIM VALUES (1, 'DIMENSION', 3, 'OLAP_USR', 'DIMENSION', 'DIMENSION', 'TOP', 'OLAP_USR', 'DIMENSION', NULL, 1, 12, 121, NULL, 100005);
    INSERT INTO SOLVED_DIM VALUES (0, 'OUD1', 1, 'DIMENSION', 'OUD1', 'OUD1', 'TOP', 'OLAP_USR', 'DIMENSION', 'OUD1', 1, 12, 121, 1211, 100006);
    INSERT INTO SOLVED_DIM VALUES (0, 'OUD2', 1, 'DIMENSION', 'OUD2', 'OUD2', 'TOP', 'SH', 'DIMENSION', 'OUD2', 1, 11, 111, 1111, 100007);
    commit;
    BEGIN
    -- ---- Creating Dimension (CWM2_OLAP_DIMENSION) -------------------------
    begin
    cwm2_olap_dimension.drop_dimension(user, 'SOLVED_DIM');
    exception when others then null;
    end;
    cwm2_olap_dimension.create_dimension(user, 'SOLVED_DIM', 'SOLVED_DIM disp', 'SOLVED_DIM pl', 'SOLVED_DIM short', 'SOLVED_DIM long');
    -- ----- Completing Dimension Metadata (CWM2_OLAP_DIMENSION_ATTRIBUTE) ---
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'ID', 'ID', 'ID', 'ID');
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'ET key', 'ET key', 'ET key', 'ET key', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'Parent ET key', 'Parent ET key', 'Parent ET key', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'Grouping ID', 'Grouping ID', 'Grouping ID', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'Parent Grouping ID', 'Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Long Description', 'Long Description', 'Long Description', 'Long Description', true);
    cwm2_olap_dimension_attribute.create_dimension_attribute(user, 'SOLVED_DIM', 'Short Description', 'Short Description', 'Short Description', 'Short Description', true);
    -- ----- Completing Dimension Metadata (CWM2_OLAP_HIERARCHEY) ------------
    cwm2_olap_hierarchy.create_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'SOLVED_DIM_HI disp', 'SOLVED_DIM_HI short', 'SOLVED_DIM_HI long', 'SOLVED LEVEL-BASED');
    cwm2_olap_dimension.set_default_display_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI');
    -- ----- Completing Dimension Metadata (CWM2_OLAP_LEVEL) -----------------
    cwm2_olap_level.create_level(user, 'SOLVED_DIM', 'OBJECT_NAME', 'OBJECT_NAME disp', 'OBJECT_NAME pl', 'OBJECT_NAME short', 'OBJECT_NAME long');
    cwm2_olap_level.create_level(user, 'SOLVED_DIM', 'OBJECT_TYPE', 'OBJECT_TYPE disp', 'OBJECT_TYPE pl', 'OBJECT_TYPE short', 'OBJECT_TYPE long');
    cwm2_olap_level.create_level(user, 'SOLVED_DIM', 'OWNER' ,'OWNER disp',      'OWNER pl', 'OWNER short', 'OWNER long');
    cwm2_olap_level.create_level(user, 'SOLVED_DIM', 'TOP', 'TOP disp',           'TOP pl', 'TOP short', 'TOP long');
    -- ----- Completing Dimension Metadata (CWM2_OLAP_LEVEL_ATTRIBUTE) -------
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ID', 'OBJECT_NAME', 'ID', 'OBJECT_NAME_ID', 'OBJECT_NAME ID', 'ID');
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ID', 'OBJECT_TYPE', 'ID', 'OBJECT_TYPE_ID', 'OBJECT_TYPE ID', 'ID');
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ID', 'OWNER',      'ID', 'OWNER_ID', 'OWNER ID', 'ID');
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ID', 'TOP', 'ID', 'TOP_ID', 'TOP ID', 'ID');
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ET key', 'OBJECT_NAME', 'ET key', 'OBJECT_NAME_ET', 'OBJECT_NAME ET key', 'ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'OBJECT_NAME', 'Parent ET key', 'OBJECT_NAME PARENT', 'OBJECT_NAME Parent ET key', 'Parent ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'OBJECT_NAME', 'Grouping ID', 'OBJECT_NAME GID','OBJECT_NAME GID', 'Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'OBJECT_NAME', 'Parent Grouping ID', 'OBJECT_NAME PGID', 'OBJECT_NAME Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Long Description', 'OBJECT_NAME', 'Long Description', 'OBJECT_NAME LongDesc', 'OBJECT_NAME Long Desc', 'Long Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Short Description', 'OBJECT_NAME', 'Short Description', 'OBJECT_NAME ShortDesc', 'OBJECT_NAME Short Desc', 'Short Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ET key', 'OBJECT_TYPE', 'ET key', 'OBJECT_TYPE_ET', 'OBJECT_TYPE ET key', 'ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'OBJECT_TYPE', 'Parent ET key', 'OBJECT_TYPE PARENT', 'OBJECT_TYPE Parent ET key', 'Parent ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'OBJECT_TYPE', 'Grouping ID', 'OBJECT_TYPE GID','OBJECT_TYPE GID', 'Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'OBJECT_TYPE', 'Parent Grouping ID', 'OBJECT_TYPE PGID', 'OBJECT_TYPE Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Long Description', 'OBJECT_TYPE', 'Long Description', 'OBJECT_TYPE LongDesc', 'OBJECT_TYPE Long Desc', 'Long Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Short Description', 'OBJECT_TYPE', 'Short Description', 'OBJECT_TYPE ShortDesc', 'OBJECT_TYPE Short Desc', 'Short Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ET key', 'OWNER', 'ET key', 'OWNER_ET', 'OWNER ET key', 'ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'OWNER', 'Parent ET key', 'OWNER PARENT', 'OWNER Parent ET key', 'Parent ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'OWNER', 'Grouping ID', 'OWNER GID','OWNER GID', 'Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'OWNER', 'Parent Grouping ID', 'OWNER PGID', 'OWNER Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Long Description', 'OWNER', 'Long Description', 'OWNER LongDesc', 'OWNER Long Desc', 'Long Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Short Description', 'OWNER', 'Short Description', 'OWNER ShortDesc', 'OWNER Short Desc', 'Short Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'ET key', 'TOP', 'ET key', 'TOP_ET', 'TOP ET key', 'ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent ET key', 'TOP', 'Parent ET key', 'TOP PARENT', 'TOP Parent ET key', 'Parent ET key', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Grouping ID', 'TOP', 'Grouping ID', 'TOP GID','TOP GID', 'Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Parent Grouping ID', 'TOP', 'Parent Grouping ID', 'TOP PGID', 'TOP Parent Grouping ID', 'Parent Grouping ID', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Long Description', 'TOP', 'Long Description', 'TOP LongDesc', 'TOP Long Desc', 'Long Description', true);
    cwm2_olap_level_attribute.create_level_attribute(user, 'SOLVED_DIM', 'Short Description', 'TOP', 'Short Description', 'TOP ShortDesc', 'TOP Short Desc', 'Short Description', true);
    cwm2_olap_level.add_level_to_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'OBJECT_TYPE');
    cwm2_olap_level.add_level_to_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'OWNER');
    cwm2_olap_level.add_level_to_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OWNER',          'TOP');
    cwm2_olap_level.add_level_to_hierarchy(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'TOP');
    -- + Mapping Dimensions +
    cwm2_olap_table_map.map_dimtbl_hierlevel(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OBJECT_NAME', user, 'SOLVED_DIM', 'OBJECT_NAME', 'OBJECT_TYPE');
    cwm2_olap_table_map.map_dimtbl_hierlevel(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OBJECT_TYPE', user, 'SOLVED_DIM', 'OBJECT_TYPE', 'OWNER');
    cwm2_olap_table_map.map_dimtbl_hierlevel(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'OWNER',           user, 'SOLVED_DIM', 'OWNER',     'TOP');
    cwm2_olap_table_map.map_dimtbl_hierlevel(user, 'SOLVED_DIM', 'SOLVED_DIM_HI', 'TOP',           user, 'SOLVED_DIM', 'TOP');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ID', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'ID', user, 'SOLVED_DIM', 'OBJECT_NAME_ID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ET key', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'ET key', user, 'SOLVED_DIM', 'ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent ET key', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Parent ET key', user, 'SOLVED_DIM', 'PARENT_ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Grouping ID', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Grouping ID', user, 'SOLVED_DIM', 'GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent Grouping ID', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Parent Grouping ID', user, 'SOLVED_DIM', 'PARENT_GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Long Description', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Long Description', user, 'SOLVED_DIM', 'LONG_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Short Description', 'SOLVED_DIM_HI', 'OBJECT_NAME', 'Short Description', user, 'SOLVED_DIM', 'SHORT_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ID', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'ID', user, 'SOLVED_DIM', 'OBJECT_TYPE_ID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ET key', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'ET key', user, 'SOLVED_DIM', 'ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent ET key', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Parent ET key', user, 'SOLVED_DIM', 'PARENT_ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Grouping ID', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Grouping ID', user, 'SOLVED_DIM', 'GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent Grouping ID', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Parent Grouping ID', user, 'SOLVED_DIM', 'PARENT_GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Long Description', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Long Description', user, 'SOLVED_DIM', 'LONG_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Short Description', 'SOLVED_DIM_HI', 'OBJECT_TYPE', 'Short Description', user, 'SOLVED_DIM', 'SHORT_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ID', 'SOLVED_DIM_HI', 'OWNER', 'ID', user, 'SOLVED_DIM', 'OWNER_ID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ET key', 'SOLVED_DIM_HI', 'OWNER', 'ET key', user, 'SOLVED_DIM', 'ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent ET key', 'SOLVED_DIM_HI', 'OWNER', 'Parent ET key', user, 'SOLVED_DIM', 'PARENT_ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Grouping ID', 'SOLVED_DIM_HI', 'OWNER', 'Grouping ID', user, 'SOLVED_DIM', 'GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent Grouping ID', 'SOLVED_DIM_HI', 'OWNER', 'Parent Grouping ID', user, 'SOLVED_DIM', 'PARENT_GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Long Description', 'SOLVED_DIM_HI', 'OWNER', 'Long Description', user, 'SOLVED_DIM', 'LONG_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Short Description', 'SOLVED_DIM_HI', 'OWNER', 'Short Description', user, 'SOLVED_DIM', 'SHORT_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ID', 'SOLVED_DIM_HI', 'TOP', 'ID', user, 'SOLVED_DIM', 'TOP_ID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'ET key', 'SOLVED_DIM_HI', 'TOP', 'ET key', user, 'SOLVED_DIM', 'ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent ET key', 'SOLVED_DIM_HI', 'TOP', 'Parent ET key', user, 'SOLVED_DIM', 'PARENT_ETKEY');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Grouping ID', 'SOLVED_DIM_HI', 'TOP', 'Grouping ID', user, 'SOLVED_DIM', 'GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Parent Grouping ID', 'SOLVED_DIM_HI', 'TOP', 'Parent Grouping ID', user, 'SOLVED_DIM', 'PARENT_GID');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Long Description', 'SOLVED_DIM_HI', 'TOP', 'Long Description', user, 'SOLVED_DIM', 'LONG_DESCRIPTION');
    cwm2_olap_table_map.map_dimtbl_hierlevelattr(user, 'SOLVED_DIM', 'Short Description', 'SOLVED_DIM_HI', 'TOP', 'Short Description', user, 'SOLVED_DIM', 'SHORT_DESCRIPTION');
    -- + Validate and Refresh +
    cwm2_olap_validate.validate_dimension(user, 'SOLVED_DIM');
    cwm2_olap_metadata_refresh.mr_refresh;
    END;
    The first dataset works perfectly. But not the second one... There are some intersections at OBJECT_TYPE level.
    TOP->OLAP_USR->DIMENSION->OUD1
    and
    TOP->SH->DIMENSION->OUD2.
    When I'm watching TOP->OLAP_USR->DIMENSION->OUD1, I not only open OUD1, but OUD2 under SH (even skipping OBJECT_TYPE level). It's simple to do it for USOLVED LEVEL-BASED by assigning different Id for the same OBJECT_TYPES from different owners. But it looks like my ids are ignored for Solved hierarchy.
    Does anybody knows how to handle such situation?

  • Dimension Design - Single Dimension with Multiple Hierarchies

    Morning,
    the purpose of this discussion is to understand how we should design a specific dimension with 3 levels and multiple hierarchies for optimal performance.
    We have an institution dimension with the following characteristics:
    Characteristics
    Dimension: Institution
    Levels:
    1. Total Bank (TB) Level
    2. Peer Group (PG) Level
    3. Institution Level
    Hierarchies:
    1. Some of the hierarchies have 3 levels and others have only 2 levels (Skip Level)
    2. ALL the hierarchies have a TB level and an Institution level
    3. None of the hierarchies have the same leafs
    4. Some of the hierarchies leafs can overlap
    Design:
    We are considering two approaches for the institution dimension levels:
    a)
    Levels:
    Hierarchy 1 TB Level
    Hierarchy 1 PG Level
    Hierarchy 1 Inst Level
    Hierarchy 2 TB Level
    Hierarchy 2 Inst Level
    Hierarchy 3 TB Level
    Hierarchy 3 Inst Level
    Note:
    This approach is working and the resulting dimension and cubes are used by OBIEE, but some of the OBIEE analysis takes a long time (more than a minute) to return the results.
    At this point, we are not sure whether this approach will result in an optimal design from a performance perspective and are looking at restructuring the dimension to represent only the three conceptual levels as indicated below.
    b)
    Levels:
    1. Total Bank (TB) Level
    2. Peer Group (PG) Level
    3. Institution Level
    The rest of the dimension i.e. hierarchies, attributes and mappings are defined in the same way.
    The cube associated with this dimension have approximately 80 million records.
    Please advise on any best practices or design considerations that we need to take into account.
    Thanks

    No, it is not possible to have multiple hiearchies in a PC logical dimension.
    The concept of the Parent-Child (PC) hierarchy is completely different from the level-based hierarchy. Specifically the PC hierarchy expects a predefined / architected table with corresponding PC column/value structuring with or without attributes.
    Short story even shorter it is not possible.
    Longer...
    In the RPD the BMM actually prevents you from adding a new logical level, child level, or parent level when you have selected that the logical dimension be a parent child logical dimension with Parent-Child hierarchy.
    On another note...
    Have you tried architecting/building your PC source table so that it represents the roll-up and bottom child-levels like you are seeking? That is, that same member in the child column more than once having a separate parent value. That should be doable.
    That was a great question, please award points if this answered your question or it was helpful.
    Cheers,
    Christian
    http://www.artofbi.com

Maybe you are looking for