Distinct count for multiple fact tables in the same cube

I'm fairly new to working with SSAS, but have been working with DW environments for many years.
I have a cube which has 4 fact tables.  The central fact table is Encounter and then I also have Visit, Procedure and Medication.  Visit, Procedure and Medication all join to Encounter on Encounter Key.  The relationship between Encounter
and Procedure and Encounter and Medication are both an optional 1 to 1.  The relationship between Encounter and Visit is an optional 1 to many.
Each of the fact tables join to the Patient dimension on the Patient Key.  The users are looking for a distinct count of patients in all 4 fact tables.  
What is the best way to accomplish this so that my cube does not talk all day to process?  Please let me know if you need any more information about my cube in order to answer this.
Thanks for the help,
Andy

Hi Andy,
Each distinct count measure cause an ORDER BY clause in the SELECT sent to the relational data source during processing. In SSAS 2005 or later, it creates a new measure group for each distinct count measure(it's a technique strategy for improving perormance).
Besides, please take a look at the following distinct count optimization techniques:
Create Customized Aggregations
Define a Processing Plan
Create Partitions of Equal Size
Use Partitions Comprised of a Distinct Range of Integers
Distribute the Hash of Your UserIDs
Modulo Function
Hash Function
Choose a Partitioning Strategy
For more detail information, please refer to the article below:
Analysis Services Distinct Count Optimization:
http://www.microsoft.com/en-us/download/details.aspx?id=891
In addition, here is a good article about SSAS Best Practices for your reference:
http://technet.microsoft.com/en-us/library/cc966525.aspx
If you have any feedback on our support, please click
here.
Hope this helps.
Elvis Long
TechNet Community Support

Similar Messages

  • SSAS 2008 Using multiple (three) fact tables in the same cube

    Hi, I have three fact tables in my cube,
    Actions
    Events
    Visits
    Events captures anything that happens, any transaction.  It contains parent actions and parent visits, plus other things that business deems as "actions" that change all the time.
    Actions captures a subset of Events and has its own transactional structure.  Each action has an event, but not every event has an action.
    Visits is a completely different subset of Events with a very different transactional structure from both events and actions.  Each condition can have an event, but not every event has a condition.
    These facts don't have many overlapping dimensions, perhaps a couple of outrigger look-up dimensions, like Codes and Dates.
    I am struggling to reorganize the cube in such a way that I don't have to process with errors and unknown dimension members.  Is there any specific guidance re: what to do in these situations?

    @Victor Rocca
    Some dimensions are common, like Dates and Codes, but mostly they are their own dimensions.  Visits
    and Actions facts have foreign keys from Events in them, so I would prefer to join directly, anyway.

  • BMM issue for multiple fact tables

    Hi All,
    I have three facts F1,F2, F2 and two confirmed dimension D1,D2 in my sample rpd.
    In BBM layer , I tried to do the modeling as follows instead of creating one logical fact table. There are many fact tables to come
    in future.
    F1<----D1--->F2<----D2--->F3
    When I deploy this sample rpd and run the report from F1 andF2, I get an error No fact Table exists at requested level of detail.
    I have not created any hierarchical dimension to set up the content in the fact table.
    I am very much thanksful for any advices.
    Thanks,
    Vishal

    Hi,
    Please refer the below link.
    http://satyaobieesolutions.blogspot.in/2012/07/implementing-multiple-fact-tables-in.html
    My suggestion would be bring both the facts to the same logical table sources and have a single fact table in the BMM layer joined with multiple dimensions.
    Build a dimension hierarchy for the dimensions and then in the content logical layer mapping, map the dimensions to the fact tables with detailed level/Total
    Refer the below link-
    http://108obiee.blogspot.com/2009/08/joining-two-fact-tables-with-different.html
    Hope this help's
    Thanks,
    Satya
    Edited by: Satya Ranki Reddy on Jul 26, 2012 7:34 AM

  • Reg: Using Multiple fact tables in the RPD!

    Hello everyone,
    Can I get some help with the following scenario?
    We use OBIEE 11g.
    We have a report that uses only 1 fact table to retrieve the data and it takes hell lot of time to bring up the data in the report.
    My question here is is there a way to bring up the performance of the report if we split the data in 1 fact table to 2 fact tables and make the report use the 2 fact tables.
    Are there any other ways of tuning the report for better performance.
    Thanks for the help in advance!
    Ajay.

    Hi Ajay,
    Follow the following steps for the tuning;
    1. Try to tune the SQL query first generated by the report, and make necessary changes. (Put indexes on required column so that your query is scanning the index instead of entire table)
    2. You can try to create agg fact table and use the agg navigation for improving the performance. (Idea is to reduce the data set on which sql is fired)
    3. You can try to create partitions on the FACT table in the DB and so that required partitions are queried as per filters.
    4. In the Last if all the above doesn't tune your query you can try splitting the FACT table in to TWO or More as per your decision and then use fragmentation content in the BMM layer of the RPD so it will hit appropriate tables as per you report.
    Mark Correct/Helpful if it helps.
    Best of Luck,
    Kashi

  • CSS11500 SSL handling question for multiple url/FQDNs with the same ip address

    I know that it's possible on the CSS to handle multiple incoming HTTP requests that terminate on the same IP address and port and balance them to various servers based on the url.   For instance, I can set up www.cats.com and www.dogs.com at the same 192.168.35.12 address in DNS, and set up two different content rules:
    content cats
    vip address 192.168.35.12
    port 80
    url "//www.cats.com/*"
    add server cats1
    add server cats2
    active
    content dogs
    vip 192.168.35.12
    port 80
    url "//www.dogs.com/*"
    add server dogs1
    add server dogs2
    active.
    Easy and straightforward.
    But what if I want to add SSL handling for https://www.cats.com and https://www.dogs.com?
    I'm not sure how to create the ssl-proxy-list where one content rule (ip address/port) combination needs to pass through the ssl module and get matched with the proper ssl certificate.
    Can this be done?  Can one associate multiple certs and keys with a single ssl-server entry and a single ssl accelerator service?  Or do I have to create multiple ssl-proxy-lists for cats and dogs and build multiple ssl services each referring to a unique ssl-proxy-list, and then use the url parameter in the https content rule to determine which ssl service (and therefore which key/cert pair) gets the traffic?
    Thanks in advance for any insights.

    Hi Tim,
    Unfortunately this is not possible; you can't associate multiple certificates to a single proxy list due to the fact that SSL handshake is done first with no visibility of the URL being requested, so the CSS won't know which public server to use in order to perform the traffic decryption.
    But there are a couple of options that you may want to look at (depending on the URL string)
    If your URLs are subdomains and you hold a wildcard SSL certficate to match multiple requests, i.e your domain being "pets.com" you can have a certficate that will match request for dogs.pets.com or cats.pets.com because the cert will be in the form *.pets.com
    The second option is SAN (Subject alternative names) certificates; which give you the option to include up to 4 flavors of the domain within the same file, such as pets.com, pets.net, www.1pets.com.
    I hope this helps.
    Pablo

  • Problem using 2 Fact tables with the same dimension

    Hi,
    I have noticed a very strange behaviour in Presentation Services / BI Administrator. I have 2 cubes (created in OWB) which are in the same business model, they are set up with foreign keys etc. and works as they should using them separately. Problem is (sometimes!) when I want to use the common dimension (Project) against both of the fact tables (Sales Order and Purchase Order).
    Scenario 1:
    If I use Project Id, Purchase Amount, Sales Amount I get either an amount in Sales Amount or in Purchase Amount, BUT if the Project Id starts with a letter (not starting with a number) it will show the correct amount for both Sales- and Purchase Amount.
    Scenario 2:
    I use Project Description (even followed by Project Id or not), Sales Amount, Purchase Amount I get the correct numbers for all projects. Project Description must come before Project Id or else it will not work.
    I only noticed this problem when using both of the Fact tables since I want to compare Sales Amount and Purchase Amount in each Project. The Dimension for Project consist of Project, Sub Project and Activity and works fine. If I only use Sales Amount or Purchase Amount with Project Id I don't get this error. Only when both numbers are used.
    I would be very happy if anyone have a good solution/explanation to this problem! Seems like could be something in the BI Server memory that goes wrong somewhere.

    The strange thing is that the results from the queries are correct running them in SQL Developer. This is one that works:
    SELECT Project.Project saw_0, "- SalesOrderFact"."Sales Amount" saw_1, "- PurchaseOrderFact"."Purchase Amount" saw_2, REPORT_SUM(saw_1 BY ), REPORT_SUM(saw_2 BY ) FROM SalesOrder ORDER BY saw_0
    SALES ORDER:
    select T3032.PROJECT_DESCRIPTION as c1,
    sum(T161.SALES_AMOUNT_LOCAL) as c2
    from
    DIM_PROJECT_V T3032,
    CUBE_SALES_ORDER T161
    where ( T161.DIM_PROJECT = T3032.DIMENSION_KEY )
    group by T3032.PROJECT_DESCRIPTION
    order by c1
    PURCHASE_ORDER:
    select T3032.PROJECT_DESCRIPTION as c1,
    sum(T3020.TOTAL_BUY_AMOUNT) as c2
    from
    DIM_PROJECT_V T3032,
    CUBE_PURCH_ORDER T3020
    where ( T3020.DIM_PROJECT = T3032.DIMENSION_KEY )
    group by T3032.PROJECT_DESCRIPTION
    order by c1
    And this will give the wrong result in Answers (correct in SQL..):
    SELECT Project."Project Id" saw_0, "- SalesOrderFact"."Sales Amount" saw_1, "- PurchaseOrderFact"."Purchase Amount" saw_2, REPORT_SUM(saw_1 BY ), REPORT_SUM(saw_2 BY ) FROM SalesOrder ORDER BY saw_0
    SALES_ORDER:
    select T3032.PROJECT_KEY_NAME_ID as c1,
    sum(T161.SALES_AMOUNT_LOCAL) as c2
    from
    DIM_PROJECT_V T3032,
    CUBE_SALES_ORDER T161
    where ( T161.DIM_PROJECT = T3032.DIMENSION_KEY )
    group by T3032.PROJECT_KEY_NAME_ID
    order by c1
    PURCHASE_ORDER:
    select T3032.PROJECT_KEY_NAME_ID as c1,
    sum(T3020.TOTAL_BUY_AMOUNT) as c2
    from
    DIM_PROJECT_V T3032,
    CUBE_PURCH_ORDER T3020
    where ( T3020.DIM_PROJECT = T3032.DIMENSION_KEY )
    group by T3032.PROJECT_KEY_NAME_ID
    order by c1
    As you can see the SQL look very familiar, and I cannot see anything in SQL that should be the cause of this error. I think the error must be in the BI Memory or something.
    Any ideas?

  • How can I let firefox save usernames/passwords for multiple subdomains that use the same username but different passwords?

    on a particular website that has sub domains I have multiple accounts with the same name but different password. Firefox seems only able to save one of them, because they are on the same site.

    "Things"?  What things?  Apps for keeping track of when to change cat litter?  30 different versions of "twinkle, twinkle little star" played by everything from punk rockers to Gregorian chant?  Videos on the best way to make Christmas cake?

  • SSO for multiple APEX applications on the same instance

    Hi All,
    We have an APEX instance with 2 applications configured in 2 workspaces.
    The instance is already configured to use SSO. I have followed thee Metalink note #562807.1 to do the SSO wiring.
    We are planning to incorporate SSO authentication for both the applications.
    Also planning to use different URLs (2 aliases for the server) for the applications.
    eg:-
    App1 will be using http://app1.us.oracle.com/pls/apex/f?p=100:10
    App2 will be using http://app2.us.oracle.com/pls/apex/f?p=200:10
    Is it possible to register SSO on 2 URLs for the same instance?
    Can I execute regapp.sql multiple times on the same instance?
    Please advice me.
    Thanks,
    Sajeesh

    Is it possible to register SSO on 2 URLs for the same instance?You should be able to register as many partner applications as you like. I suggest that you try it.
    Can I execute regapp.sql multiple times on the same instance?Yes, but the lsnr_token value must be unique. That's HTML_DB:hostname:port.
    Your applications in different workspaces will not be able to share sessions but you will probably get the single-sign-on behavior you need.
    Scott

  • How to make Adobe acrobat feature to convert SAP  Pages to PDF available for multiple users connected to the same Citrix server

    Hi,
    In my previous endeavours to solve this business requirement where multiple users will be able to use the Adobe acrobat feature to convert SAP pages inside SAP to PDF, I was told that it is not possible to do this for multiple users at the same time. However I have found an article according to which it says it is possible. Could you check it once and let me know if this article can be used for implementing the requirement stated above as this link clearly indicates that Adobe Acrobat is supported on Citrix.
    Please find the link below where it states it is adobe acrobat is supported in Citrix for multiple users.
    http://www.adobe.com/devnet-docs/acrobatetk/tools/AdminGuide/citrix.html.

    1. What is the Acrobat feature that you mean? There's nothing specific to SAP included with Acrobat.
    2. Yes, some Terminal Server configurations appear supported (check carefully). All users of the terminal server will need a license, so far as I know - total licenses = total individual people using.

  • Multiple details table on the same page

    Newbi to APEX. Can I have muliple details table for update/insert in tabular format on the same page with the same master? Thanks!

    In the meantime, I can answer to your questions:
    · Why does JHeadstart not make use of the UIX-Struts integration (see Chapter 15 of the UIX developer’s Guide)?This has been done to allow the same page to be run both with Struts and MVC Framework, without needing to change the page. Using the UIX-Struts integration would have made the pages 'controller aware'.
    · How do you specify which columns/attributes in a Table Layout are sortable?As far as generation is concerned, you can only specify the whole table to be sortable. In case of UIX you can post-gen modify the <sortableHeader> tag of each column separately. In case of JSP you can remove the <a href> tag for each column that you do not want to sort on.
    Jan Kettenis
    JHeadstart Team

  • HitTest for multiple Movie Clip at the same time

    I have a movie it is a triangle.I duplicate it and I want to hitTest on the first triangle movie clip and I added 3 different line movie clips on the 3 side of triangle.I tried to write a code something like that.
    if(firstTriangle_mc.hitTestObject(line1_mc,line2_mc,line_3mc){
    trace("Ok");
    but I've got error.I think it is not allowed hitTestObject for multiple Movie Clips.So is there anyone have an opinion about it?What should I do?

    Here is another test for multiple movie clips for hitTestPoint but only the first work the others don't
    uc_mc.addEventListener(Event.ENTER_FRAME,hitle);
    function hitle(e:Event) {
    if (uc_mc.hitTestPoint(cub1,cub1Y,true)&&(cub2,cub2Y,true)&&(cub3,cub3Y,true)) {
      uc_mc.alpha=0.5;
    }else{
      uc_mc.alpha=1;
    The code above doesn't work.What should I do?

  • Dimension and Fact table have the same grain

    Hi All,
    How can we join a dimension and a fact table if they have the same grain ? In my case it is a contract number.
    Thanks

    Your Impression is right, In terms of Dimensional Modeling. You have to consider this when you are designing your warehouse tables.
    But now if you already have these tables in database, OBIEE does not care how many rows a table have, it just need to know what is fact and what is Dimension and it will generate sql queries based on join conditions.

  • Free Goods for multiple line items of the same material

    Hi Friends,
    We have configured Free Goods to a particular material in such a way that if the customer orders 100 qty of Material A then he gets 10 qty of Material B free. This is working fine if there is only one line item of Material A with qty more than 100.
    However, if the order is created in such a way that there are two line items of material A for 50 qty each then the system is not giving the free material B, even though the total ordered qty in the sales order for material A is 100.
    How can this be configured in the system? Please Help.
    Regards,
    Abhishek

    What is the purpose of giving the same material as second line item.
    specify in the first line item itself.
    or els the condition record which you have specified that for 100 material of A gives 10 material of B modify it to 10 of A should give 1 material of B
    The first you will be useful for you.

  • How to make Adobe acrobat feature to convert SAP  Pages to PDF available for multiple users connected to the same server

    We have installed Adobe Acrobat X Pro- English,Francais,Deutsch version 10.1.9 in our test environment and tried  testing it for converting SAP pages into PDF with a few pilot users. In doing so we faced a challenge, where only one user at a time can use Adobe Acrobat PRO to convert SAP pages in to PDF.As long as the first user who  is connected to Adobe Acrobat Pro via SAP isn’t logged off, other users connected to the same  server  are not being able to get the “Save As” dialog box to save the PDF in their preferred location.
    This is a business requirement and we need an urgent solution for the same. Can anyone help us in telling us if this is possible and if yes the how to go about?

    It's not something we deal with here, the LiveCycle products are a different world. Key points: Adobe LiveCycle is a range of products, some desktop, some server. LiveCycle PDF Generator is the one you should look at, it comes in 3 editions. License terms are by negotiation. Key management is via its Java API.

  • Get the master table value based on multiple fact tables

    I have an master table which has to filter data based on multiple fact tables
    In the below sample, i need to get the list of MasterTable SId in an single query for fetching data from all the fact tables with an criteria.
    Can u let me know the single query to handle the below situation
    Select count(1) from dbo.DimMaster where sid in
    (Select Master_sid from dbo.factsales where SalesDate < '20141231')
    Select count(1) from dbo.DimMaster where sid in
    (Select Master_sid from dbo.factPurchase where PurchaseDate < '20141231')
    Select count(1) from dbo.DimMaster where sid in
    (Select Master_sid from dbo.factSalary where SalaryDate < '20141231')
    Select count(1) from dbo.DimMaster where sid in
    (Select Master_sid from dbo.factMarket where MarketDate < '20141231')
    ShanmugaRaj

    Please try below:
    SELECT
    (SELECT count(1)
    FROM dbo.DimMaster
    WHERE sid IN (
    SELECT Master_sid
    FROM dbo.factsales
    WHERE SalesDate < '20141231'
    )) as C1,
    (SELECT count(1)
    FROM dbo.DimMaster
    WHERE sid IN (
    SELECT Master_sid
    FROM dbo.factPurchase
    WHERE PurchaseDate < '20141231'
    )) as C2,
    (SELECT count(1)
    FROM dbo.DimMaster
    WHERE sid IN (
    SELECT Master_sid
    FROM dbo.factSalary
    WHERE SalaryDate < '20141231'
    )) as C3 ,
    (SELECT count(1)
    FROM dbo.DimMaster
    WHERE sid IN (
    SELECT Master_sid
    FROM dbo.factMarket
    WHERE MarketDate < '20141231'
    )) as C4
    -Vaibhav Chaudhari

Maybe you are looking for