Matrix report performance

Hi,
I have a table with the following attributes : item, location, value. I want to create a matrix report with items on columns, locations as headers and in the middle the correspondent values: the report should look like this:
item loc1 loc2 loc3
1234 200 300
2456 25 12
456 12 15 16
I know how to do the matrix report(I use a view based on the table) but my question is related to a performance problem. As the view contains a lot of data (more than 2mil. records), my question is how the matrix report is being build( I need to know if it does a self-join with the same view to build it, as this might take a long time to generate the report).
In case I use a parameter for location(for example I want to generate a matrix report but only for loc1) it will take a long time as well?
Thanks

Try to avoid too much of regrouping in layout, have your xml structure in desired format. Also try enabling scalable mode

Similar Messages

  • How to build a performance matrix report

    Hi,
    I have a table that tracks performance and potential of employee's.
    I want to represent the data in the table as a 9 box performance potential matrix report Each box should contain the names of the employees who fit the particular performance potential criteria.
    |---------------|--------------|-----------------| ^
    | | | | p
    | | | |Exceeds e
    | | | | r
    |---------------|--------------|-----------------| f
    | | James | | o
    | | Dan | |Meets r
    | | | | m
    |---------------|--------------|-----------------| a
    | | | | n
    | | | |Needs Improvement c
    | | | | e
    |---------------|--------------|-----------------|
    Limited Growth High
    <-------------Potential---------------------->
    Is there a good way of achieving this?

    http://download.oracle.com/docs/cd/B14099_17/bi.1012/b13895/orbr_plsql.htm#g1021942

  • Matrix report in BI publisher performance

    HI Team,
    I have build RTF layout for matrix report,the data generation is completing in very less time.. but the layout swapping the rows as columns taking too long time , If data generation is completing around 5 mins..layout building is completing in 45 mins.. Please let me know any feasable solution.
    Best Regards.
    Edited by: user9100912 on Mar 28, 2013 6:41 AM

    Try to avoid too much of regrouping in layout, have your xml structure in desired format. Also try enabling scalable mode

  • SSRS Matrix report. Variance expression by Month. Need to compare month from prior year to current month of current year VS2010

    Please help.  I have a matrix report.  In the report I have row group  PO Type.  One the Column groups I have a parent group by Fiscal Year, and then a child group by Month.  When I run the report, I get two years of data back broken
    out by month.  Please see below.
    Now here is where I am getting stuck.  I need to take the variance between the current month of the current year, from the same month of the prior year.  So I need to show the difference between Oct , 2014 from Oct, 2013. November, 2014 from November
    2013... etc. etc.
    In the example below, how do I create a column or row showing the variance for Contracts for October 2014.  I need to take the contracts for October 2014 which is 3 and subtract that from October 2013 which is 8.  Any suggestions? How do I do that
    for each month?  Then I need to do it for the quarter... then the year?  But I'll be happy if I can just get the month working first.
    Any help will be appreciated. 
    here is what my rdl file looks like.
    Here is what my report looks like when I render it.

    Hi Adrian_s2012,
    According to your description, you want to compare values for the month of current year with the month of prior year and get the variance. Right?
    In Reporting Services, we don't have any function to get this "Year to Year" Growth. In this scenario, if you data source is a cube, we suggest you use Analysis Services to achieve your requirement. If this data source is just from database, it will be hardly
    to calculate the variance because we need to compare the values within every two different column group and matrix generate adjacent columns one by one. Even we make it by using custom, every time executing the long code when generating result
    in a cell will reduce a lot of performance, we really don't suggest to do that in SSRS. Here is a thread with much easier requirement, please take a reference of that:
    http://social.msdn.microsoft.com/Forums/office/en-US/842e2dcb-d949-4297-9d91-eac989692cb5/difference-between-the-grouped-column?forum=sqlreportingservices
    If you have any question, please feel free to ask.
    Best Regards,
    Simon Hou

  • How to calculate difference and percentage in matrix report dynamic columns in SSRS 2008

    Hi Friends,
    I need to calculate Difference and Percentage In matrix report SSRS 2008
    1) Row grouping based On Product
    2) Column Grouping Week and Fiscal Year Current week  and Previous Year same Weeks 
    3)Data Invnetory(Value fileld)
    Example:
    If value1 and Value2 Available we need to calculate Percentage and Difference.Otherwise Not required NA I need to Show.
    For example If Particular week,Current year data is available,Previous year  week data is not available No
    need to cal Diff and Percentage we need to show Empty.
    Below Code is working for If two values is available.
    If any one of the fiscal year week data is not there it's taking some garbage values.
    I tries with If condition in GetPCT() and GetDiff() It's not working.
    Can some one please help me on this.
    I am using the custom code 
    Public Shared Value1 as String
    Public Shared Value2 as String
    Public Shared previous as string
    Public Shared previousweek as string
    Public Shared Function GetValue(Value as String,partner as String,Week as String) as String
    If partner =previous and Week =previousweek Then
    Value2=Value
    Else
    previous=partner
    previousweek=Week
    Value1=Value
    End If
    return Value
    End Function
    Public Shared Function GetDiff()
    return Value2-Value1
    End Function
    Public Shared Function GetPct()
    return (Value2-Value1)/Value1
    End Function
    How to handle this.
    Thank You, Manasa.V

    Hi veerapaneni,
    According to your description, if one of the fiscal year week doesn’t have data, the custom code returns false results.
    For your requirement, if NULL value exists in the database, we should replace it as zero then perform calculate. So within the code, we should judge whether the value is NULL. To achieve your goal, please refer to the steps below:
    1. Create a table like below.
    create table dif4
    ([Product Group] varchar(50),
    [Week] varchar(50),
    [Fiscalyearweek] varchar(50),
    value int
    insert into dif4 values
    ('Desktops','W01','FY14W01',0),
    ('Desktops','W01','FY15W01',45),
    ('Desktops','W02','FY14W02',null),
    ('Desktops','W02','FY15W02',30),
    ('Desktops','W03','FY14W03',12),
    ('Desktops','W03','FY15W03',50),
    ('Notebooks','W01','FY14W01',35),
    ('Notebooks','W01','FY15W01',56),
    ('Notebooks','W02','FY14W02',45),
    ('Notebooks','W02','FY15W02',87),
    ('Notebooks','W03','FY14W03',75),
    ('Notebooks','W03','FY15W03',105),
    ('Tablets','W01','FY14W01',34),
    ('Tablets','W01','FY15W01',46),
    ('Tablets','W02','FY14W02',49),
    ('Tablets','W02','FY15W02',96),
    ('Tablets','W03','FY14W03',42),
    ('Tablets','W03','FY15W03',113)
    2. Add the custom code in the Report Properties.
    Public Shared Value1 as Integer
    Public Shared Value2 as Integer
    Public Shared previous as string
    Public Shared previousweek as string
    Public Shared Function GetValue(Value as Integer,product as String,Week as String) as Integer
    If Value=Nothing Then
    Value=0
    End If
    If product =previous and Week =previousweek Then
    Value2=Value
    Else
    previous=product
    previousweek=Week
    Value1=Value
    End If
    return Value
    End Function
    Public Shared Function GetPct()
    If Value1=0 Then
    return 0
    Else
    return (Value2-Value1)/Value1
    End If
    End Function
    Public Shared Function GetDiff()
    return Value2-Value1
    End Function
    3. Design the matrix like below.
    4. Then get the expected results.<o:p></o:p>
    If you have any question, please feel free to ask.
    Best regards,
    Qiuyun Yu
    Qiuyun Yu
    TechNet Community Support

  • Add zeros to a matrix report

    I'm making a matrix report and the users want to have zeros show where is no data returned. Since there are no fields I can't set the null values to zero. I used the example in the building reports pdf but it covers up the fields that returns numbers. Then I noticed the example bascially just adds the zeros to the end since they are using currency. Is there a way to have a label moveforward only when you want it, or is there another way that I'm missing.

    OK – I can now see that I wasn’t clear enough in my first reply. I have modified your SQL statement (hopefully without syntax errors :-) The job was to get all possible/necessary combinations of EVENT and SEVERITY out of sub query SUBALLROWS (i.e. I only changed sub query SUBALLROWS):
    [All my indentions are gone when I Post the Message, so it looks horrible.]
    SELECT suballrows.event,
    suballrows.severity,
    DECODE(suballrows.severity,'R',1,'A',2,'G',3) AS SEVERITYSORT,
    nvl(count(subnew.severity),0) as SEVERITYTOTAL
    FROM (SELECT severity,
    event
    FROM vw_merger_drill_issue
    WHERE bau_merger = '1'
    AND trunc(current_date-submitdate)<7
    )subnew,
    (SELECT event, -- Cartesian product of event and severity
    severity
    FROM (SELECT DISTINCT event
    FROM vw_merger_drill_issue
    WHERE event IS NOT NULL
    ) subevent,
    (SELECT DISTINCT severity
    FROM vw_merger_drill_issue
    WHERE severity IS NOT NULL
    ) subseverity
    ) suballrows
    WHERE suballrows.event = subnew.event (+)
    AND suballrows.severity = subnew.severity (+)
    GROUP BY suballrows.event,
    suballrows.severity
    ORDER BY Suballrows.Event,
    severitysort;
    Because you more or less execute the same SELECT 3 times, you might get a performance gain by the use of the WITH clause.
    My previously used detail table SALES (the same as your vw_merger_drill_issue view) contains:
    SELECT *
    FROM sales;
    MO REGION AMOUNT
    01 EUROPE 100
    02 EUROPE 50
    02 AMERICA 200
    03 AMERICA 150
    The With clause SQL looks like (and returns every month and region):
    WITH
    subsales AS
    (SELECT month, region, sum( amount) amount
    FROM sales
    GROUP BY month, region
    SELECT suballrows.month,
    suballrows.region,
    nvl( subsales.amount, 0) amount
    FROM subsales,
    (SELECT month, region -- Cartesian product with all possible combinations.
    FROM (SELECT DISTINCT region
    FROM subsales
    ) subregion,
    (SELECT DISTINCT month
    FROM subsales
    ) submonth
    ) suballrows
    WHERE suballrows.month = subsales.month (+)
    AND suballrows.region = subsales.region (+)
    ORDER BY suballrows.month,
    suballrows.region;
    MO REGION AMOUNT
    01 AMERICA 0
    01 EUROPE 100
    02 AMERICA 200
    02 EUROPE 50
    03 AMERICA 150
    03 EUROPE 0
    What your SQL would look like ... something like below. You may decide if it looks OK:
    WITH
    sub_merger_drill_issue AS
    (SELECT event,
    severity,
    count(*) severity_subtotal
    FROM vw_merger_drill_issue
    WHERE bau_merger = '1'
    AND trunc(current_date-submitdate)<7
    AND event IS NOT NULL
    AND severity IS NOT NULL
    SELECT suballrows.event,
    suballrows.severity,
    DECODE(suballrows.severity,'R',1,'A',2,'G',3) AS SEVERITYSORT,
    nvl(SUM(subnew.severity),0) as SEVERITYTOTAL -- count changed to sum because of sub total count in sub_merger_drill_issue.
    FROM sub_merger_drill_issue subnew,
    (SELECT event, -- Cartesian product of event and severity
    severity
    FROM (SELECT DISTINCT event
    FROM sub_merger_drill_issue
    ) subevent,
    (SELECT DISTINCT severity
    FROM sub_merger_drill_issue
    ) subseverity
    ) suballrows
    WHERE suballrows.event = subnew.event (+)
    AND suballrows.severity = subnew.severity (+)
    GROUP BY suballrows.event,
    suballrows.severity
    ORDER BY Suballrows.Event,
    severitysort;

  • Matrix reporting

    Hi All,
        I want to implement matrix reporting wherein a position is reporting to more than one position. In this case, a position x will have relationship A002 with 2 different positions at the same time instance.
        I could manage this by changing the time constraint of  A002 relationship  from 2 to 3 to allow overlaps. Is there any other way of acheiving the same without changing the time constraint?
    Regards,
    Santosh

    Hi Vincent,
    I wouldn't expect just selecting on two hierarchies in one EVDRE to result in that much performance degradation but I suppose it might be forcing the shared query engine back into pure MDX mode. Interesting. Maybe someone who really knows the guts of that code will jump in to comment.
    But to answer your question, the formula I suggested earlier would be something like the following, assuming that your top node in the profit center hierarchy is ALL_PROFITCTR and the profit center you want to exclude is PC_X, and your dimension is called PROFITCTR:
    [PROFITCTR].[ALL_PROFITCTR] - [PROFITCTR].[PC_X]
    Note that you can reference hierarchy node members in formulas. What you cannot do is reference another formula member in a formula. So, hopefully this addresses the problem of trying to cram a huge number of elements into a formula (which is also really really slow).
    Good luck!
    Ethan

  • Matrix Report will support by Oracle Applications

    Dear All,
    As i was new to develop Matrix Report,weather Oracle Application will support the Matrix Report.Plsif any know any seeded reports in Apps.PLs suggest me.
    If any one have Matrix Report u can plss send me to my mail id : [email protected]
    pls so thet will be help for me.bit urget
    Regards
    Prasad.

    Hi Adrian_s2012,
    According to your description, you want to compare values for the month of current year with the month of prior year and get the variance. Right?
    In Reporting Services, we don't have any function to get this "Year to Year" Growth. In this scenario, if you data source is a cube, we suggest you use Analysis Services to achieve your requirement. If this data source is just from database, it will be hardly
    to calculate the variance because we need to compare the values within every two different column group and matrix generate adjacent columns one by one. Even we make it by using custom, every time executing the long code when generating result
    in a cell will reduce a lot of performance, we really don't suggest to do that in SSRS. Here is a thread with much easier requirement, please take a reference of that:
    http://social.msdn.microsoft.com/Forums/office/en-US/842e2dcb-d949-4297-9d91-eac989692cb5/difference-between-the-grouped-column?forum=sqlreportingservices
    If you have any question, please feel free to ask.
    Best Regards,
    Simon Hou

  • Report Performance - timeout short dump

    Hello Experts,
    i am trying to improve the performace of a report that was developed long time ago.
    Issues i found:
    1. The report has many select...Endselect combinations, and selects inside the loop statements.
    2. Most of the selects have the addition 'into corresponding fields of' for selecting a few fields, without  the table addition.
    3.  Also few selects have the 'select * from'  syntax.
    data: begin of itab occurs 0,
              f1,
              f2
              f3.....
              fn,          
            end of itab.
    Ex: loop at itab.
             select f1 f2 f3 from table1
                   into corresponding fields of itab1.
               collect itab1.
             endselect.
              select f4 f5 from table2
                  into corresponding fields of itab2.
               endselect.
          endloop.
    All this leeds to performace issues.
    i have checked ST05, and i have got the details of the error.
    My question is which one of the reasons i mentioned above are a major factor in delaying the report performance?
    Which one of the above should i conetrate first to get the long runtime down? My goal is to keep my changes to the minimum and improve the performance. Please advise.

    > My question is which one of the reasons i mentioned above are a major factor in delaying the report
    > performance?
    Don't ask people for guesses, if you can see the facts!
    Run the SQL Trace several times, and use go to 'Trace List' -> 'Summarize Trace by SQL Statement'
    => Shows you total DB time and time per statement (all executions), the problems are on top of the list.
    Check ABAP, detail, and explain!
    Read more here:
    /people/siegfried.boes/blog/2007/09/05/the-sql-trace-st05-150-quick-and-easy
    Siegfried

  • Report Performance degradation

    hi,
    We are using around 16 entities in crm on demand R 16which includes both default as well as custom entites.
    Since custom entities are not visible in the historical subject area , we decided to stick to the real time reporting.
    Now the issue is , we have total 45 lakh record in these entites as a whole.We have reports where we need to retrieve the data across all the enties in one report.Intially we tested the reports with lesser no of records...the report performance was not that bad....but gradually it has degraded as we loaded more n more data over a period of time.The reports now takes approx 5-10 min and then finally diaplays an error msg.Infact after creating a report structure in Step 1 - Define Criteria......n moving to Step 2 - Create Layout it takes abnormal amount of time to display.As far as reports are concerned, we have built them using the best practice except the "Historical Subject Area Issue".
    Ideally for best performance how many records should be there one entity?
    What cud be the other reasons for such a performance?
    We are working in a multi tenant enviroment
    Edited by: Rita Negi on Dec 13, 2009 5:50 AM

    Rita,
    Any report built over the real-time subject areas will timeout after a period of 10 minutes. Real-time subject areas are really not suited for large reports and you'll find running them also degrades the application performance.
    Things that will degrade performance are:
    * Joins to other dimensions
    * Custom calculations
    * Number of records
    * Number of fields returned
    There are some things that just can't be done in real-time. I would look to remove joins from other dimensions e.g. Accounts/Contacts/Opportunities all in the same report. Apply more restrictive filters, e.g. current week/month to reduce the number of records required. Alternatively have very simple report, extract to excel and modify from there. Hopefully in R17 this will be added as a feature but it seems like you're stuck till then
    Thanks
    Oli @ Innoveer

  • Report performance while creating report on BEx

    All all!
    I am creating a report on BOE 4.0 on top of BEx connection as a source. I have developed reports on top of universe in the past and i know that if we keep calculations on reporting end it hampers the report performance. Is this the same case with BEx? if we are following the best practices is it ok to say that we should keep all heavy calculations/ aggregation on BEx or backend for better report performance.
    Can you guys please provide your opinion based on your experiance and knowledge.  Any feedbacks will help! Thanks.

    Hi,
    Definitely  best-practice to delegate a maximum of CKF to the Cube where possilble,  put RKF in the BEx query, and Filters too.
    also, add Default Values to your Variables (this will speed up generation of the bics transient universe)
    also, since Patch2.10, we are seeing some significant performance improvements  reducing 'document initialization' and  'time to prompts'  by up to 50% (step such as these often took 1.5 minutes, even on sized systems)
    Also, make sure you have BW corrections like this implemented:  1593802    Performance optimization when loading query views 
    In the BusinessObjects landscape - especially with BI 4.0 - it's all about Sizing and Tuning . Here is your bible the 'sizing companion' guide : http://service.sap.com/~form/sapnet?_SHORTKEY=01100035870000738725&_OBJECT=011000358700000307202011E
    Pay particular attention to BICSChunkSize registry settings
    Also, the  -Xmx JVM Heap Size for the Adaptive Processing Server  that is running the DSL_Bridge service.
    Regards,
    H

  • Report Performance for GL item level report.

    Hi All,
    I have a requirements to get GL line items
    report based on GL Line items so have created data model like 0FI_GL_4->DSO-> cube and tested everything is fine but when execute in production the report performance is very bad.
    Report contains document number, GL act, comp.code, posting date objects.
    I have decided to do as follows to improve reporting performance
    ·         Create Aggregate on Document, GL characteristic
    ·         Compression.
    Can I do aggregates 1st then do the compression.
    Please let me know if I missing out anything.
    Regards,
    Naani.

    Hi Naani,
    First fill the Aggrigates then do Compression,run SAP_INFOCUBE_DESIGN Check the size of Dimension maintain Line item, High cordinality to the dimension, Set Cahe for query in RSRT,
    Try to reduce Novigational Attr in report. Below document may help you.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/6071ed5f-1057-2e10-deb6-d3426fec0219?QuickLink=index&…
    Regards,
    Jagadeesh

  • Xml matrix report not expending horizontally

    hi guys m trying to develop xml matrix report but m totally stuck.value are not expanding vertically.
    RTF tags are here.Plz tell me how can i attach rtf and xml file with this post so you people can help me in better way.
    plz help me its very urgent
    <?for-each:G_1?>
    <?ITEM_CATEGORY?>
    Organization : <?horizontal-break-table:1?>
    <?for-each-group@cell: G_ITEM_CATEGORY; ORGANIZATION_CODE?>
    <? ORGANIZATION_CODE?>
    <?end for-each-group?>
    <?for-each-group: G_ITEM_CATEGORY;ITEM_CODE?> <?ITEM_CODE?>
    <?for-each-group@cell:current-group();ORGANIZATION_CODE ?>
    <?current-group()// AMOUNT?>
    <?end for-each-group?>
    <?end for-each-group?>
    <?end for-each-group?>

    When you say "the values are not expanding vertically" do you mean that on the printed report it is not returning all the values for a given field, i.e. the field is too small to display the entire value.... OR the repeating frame for the group is not expanding enough to display all the fields???

  • Bad reporting performance after compressing infocubes

    Hi,
    as I learned, we should compress requests in our infocubes. And since we're using Oracle 9.2.0.7 as database, we can use partitioning on the E-facttable to still increase reporting performance. So far all theory...
    After getting complaints about worse reporting performance we tested this theory. I created four InfoCubes (same datamodel):
    A - no compression
    B - compression, but no partitioning
    C - compression, one partition for each year
    D - compression, one partition for each month
    After loading 135 requests and compressing the cubes, we get this amount of data:
    15.6 million records in each cube
    Cube A: 135 partitions (one per request)
    Cube B:   1 partition
    Cube C:   8 partitions
    Cube D:  62 partitions
    Now I copied one query on each cube and with this I tested the performance (transaction rsrt, without aggregates and cache, comparing the database time QTIMEDB and DMTDBBASIC). In the query I selected always one month, some hierarchy nodes and one branch.
    With this selection on each cube, I expected that cube D would be fastest, since we only have one (small) partition with relevant data. But reality shows some different picture:
    Cube A is fastest with an avg. time of 8.15, followed by cube B (8.75, +8%), cube C (10.14, +24%) and finally cube D (26.75, +228%).
    Does anyone have an idea what's going wrong? Are there same db-parameters to "activate" the partitioning for the optimizer? Or do we have to do some other customizing?
    Thanks for your replies,
    Knut

    Hi Björn,
    thanks for your hints.
    1. after compressing the cubes I refreshed the statistics in the infocube administration.
    2. cube C ist partitioned using 0CALMONTH, cube D ist partitioned using 0FISCPER.
    3. here we are: alle queries are filtered using 0FISCPER. Therefor I could increase the performance on cube C, but still not on D. I will change the query on cube C and do a retest at the end of this week.
    4. loaded data is joined from 10 months. The records are nearly equally distributed over this 10 months.
    5. partitioning was done for the period 01.2005 - 14.2009 (01.2005 - 12.2009 on cube C). So I have 5 years - 8 partitions on cube C are the result of a slight miscalculation on my side: 5 years + 1 partion before + 1 partition after => I set max. no. of partitions on 7, not thinking of BI, which always adds one partition for the data after the requested period... So each partition on cube C does not contain one full year but something about 8 months.
    6. since I tested the cubes one after another without much time between, the system load should be nearly the same (on top: it was a friday afternoon...). Our BI is clustered with several other SAP installations on a big unix server, so I cannot see the overall system load. But I did several runs with each query and the mentioned times are average times over all runs - and the average shows the same picture as the single runs (cube A is always fastest, cube D always the worst).
    Any further ideas?
    Greets,
    Knut

  • Item/Drill Report Performance hinderance

    I am having a problem with report performance. I have a report that I have to have 5 drop down menus on top of the report. It seems the more drop down menus I add, the slower the response time when the report is actually navigated. One of the drop downs has over 1,000 options, but the other 4 drop down menus have 4-5 options. Is there a way to improve performance?

    And this is different from yesterday how?
    Please help, Discoverer Performance.
    Russ provided a few possible reasons, and asked for a bit of detail. Instead of asking the same question again, respond to Russ and others, and provide a bit more information to how things are set up.

Maybe you are looking for

  • Max length name of Attribute/Entity

    Hello! I want create name of Attribute more than 50 characters, but MDS 2014 does not do it. Is it possible?

  • CC 2014 no longer recognises .MTS files

    Just updated to PP CC 2014 and re-opened a project. Numerous files were flagged as missing or corrupt - had to re-load from archives. l Worse though - two clips used are .MTS files - which are copied from .MTS files in archive too - and PP is saying

  • Delivery complete indicator set by partial goods receipt in kanban orders

    HI Experts, we recently upgraded to ECC 6 DIMP EP 6. Now for kanban production orders delivery complete indicator is set for partial goods receipt. Under delivery tolerance is zero. Is there any notes available for this issue. Manual production order

  • JNI/Ada crashes with put_line

    Hello, i'm invoking a function/procedure in an ada-shared library under linux with works fine so far. when i insert a put_line into the ada function, the vm crashes while executing the put_line. I tried also using a small c library with some output.

  • Which firefox extension do you recomend for safe downloading of Youtube music

    Looking for a safe Youtube downloader. i do not trust those on Google search and In Firefox menu/extensions, there are several to choose from. Would like firefox recommendation.