Speed Issue in Report With 1130680 Records Returned

Hi
<b>Apologies to the mods if this is in the wrong section, it contains content related to Legacy SDKs (VB6/COM), newer .NET content as well as report design issue.</b>
I'm using Windows XP SP3 with the database hosted on my machine, an [email protected] with 2GB DDR2 RAM. Neither the client's pc nor their server are as powerful as mine. (It sucks, I know.)
A report has a speed issue for the end users. The query to the database (SQLS2008) takes 30 seconds and returns 1 130 680 records. And yes, this is the amount of records that need to be returned (the report is a Sales Details report for transactions from 2008/09/01 to 2009/03/31) Running the query through SQLSMS takes the same amount of time whether I execute the statement that the report sends or put the query into a stored procedure. The relevant indices are in place.
Our application is written in VB6 and uses the CR9 unmanaged runtime. I've written a small little CR application in VS2008 to see if running the report through the CR.NET runtime would make it quicker. I built the .NET app in release mode (with optimization and no debug data) and ran the exe to do the speed tests. The times taken for the report to run:<ul>
<li>VB6 app - 3:30s
<li>.NET app - 4:30s
<li>VS2008 IDE - 2:02s
</ul>
I have run the report three times for each app using my cellphone as a stopwatch and the times are reproducible to within two seconds.
I accidentally ran the report in the VS2008 IDE and it took 2:02s to run. Thinking that the loading of the DLLs in .NET was part of the problem, I added code under a button on the form with the following code:
CrystalReportsApplication1.Properties.Settings a = new CrystalReportsApplication1.Properties.Settings();
Assembly aAss = Assembly.LoadFile(a.CR01Engine);
Assembly bAss = Assembly.LoadFile(a.CR02EntFramework);
Assembly cAss = Assembly.LoadFile(a.CR03EntInfoStore);
Assembly dAss = Assembly.LoadFile(a.CR04ReportSource);
Assembly eAss = Assembly.LoadFile(a.CR05Shared);
Assembly fAss = Assembly.LoadFile(a.CR06WinForm);
to preload the assemblies. Unfortunately it made virtually no difference to the running time of the report.
Suggestion from The specified item was not found. on [this page|Speed issue - internal processing vs views;:
8. For summaries, use conditional formulas instead of running totals when possible.
I didn't know that, but we're doing that already.
I even tried using ngen in a virtual machine for the .NET app, but the time was the same. And yes, I know that ngen is only supposed to aid startup times and that it is actually recommended to let the JIT optimize on the fly instead of ngen optimize beforehand. What really struck me was that even in a VM (using Virtual PC 2007) using 512MB of RAM and only a single core the time was the same.
My questions:<ol>
<li>I thought that VS2008 shipped with CR2008 Basic, but according the the references in my project it's CR10. Would the CR2008 runtimes improve the report speed?
<li>Why do the CR10 .NET runtimes take longer to execute than the CR9 COM runtimes?
<li>I really, really, really need the .NET runtime to outperform the COM runtimes as our purchase of CR2008 hinges on this. As you can probably guess, we're currently using ye olde CR9.2 from 2002.
<li>Why oh why do the CR10 .NET runtimes take longer to execute than the CR9 COM runtimes?
<li>The first level of grouping is a variable which changed the grouping depending on a parameter. I changed it to a field from one of the tables and the times for the apps are:
<ul>
<li>VB6 - 2:15s
<li>.NET - 2:48s
<li>CR9.2 IDE - 2:19s
<li>VS2008 IDE - 2:34s
</ul>I may or may not be able to push it out to the client like this, I don't know. Why did the VS2008 IDE take longer this time? All I did was change the grouping-on-parameter to ordinary grouping.
<li>Why oh why oh WHY do the CR10 .NET runtimes take longer to execute than the CR9 COM runtimes? Are they just thunkers to the COM DLLs?
<li>Why does the run in the VS2008 IDE (in debug mode BTW, not release mode) run quicker than both programs?
<li><i>AndrewJ.requestACookie(Flavour.Strawberry, Flavour.Alternate.ChocChip, RequestMethod.Please); // Hey, it's 5:44PM and I want to go home for the long weekend! </i>
</ol>
Thank you and have a blessed Easter!
Edited by: AndrewJ on Apr 14, 2009 10:04 AM. Changed the CPU, I was thinking of my CPU at home.

Please re-post if this is still an issue to the .NET Development - Crystal Reports Forum or purchase a case and have a dedicated support engineer work with you directly.
Bottom line is CR Basic is version 10.5. CR 2008 is 12.2.x.xxxx. Install CR 2008 SP 1 to get .NET support.
And you can't compare COM to .NET, it's like comparing apples and oranges, both fruits but different flavors.

Similar Messages

  • Date based report with multiple record return

    Hello all,
       Here is the situation. Running MAS 4.1 and using Crystal 10 for doing reports. I currently have a custom report that shows all invoices that have been paid for any given date range. This works great except when there is a "credit Memo" against an invoice. The way I'm getting all paid invoices is via a formula. The record set I have to pull against lists the invoice amount, date paid and amount paid. Simple calculation on the returned record will tell you if it has been paid off or not. The problem I'm having is those invoice records that also have a credit memo against them. The credit memo entries do not have a "paid date" and since that is my main selection criteria those records will not pull into my report, and therefor those invoices will not be showed as being paid. What I need to happen (and I don't know how to do it). Is for the report to run based upon the date range specified, and pull in related records even if there is no "paid date" on them. The way MAS stores it's invoice/credit memo records is the same for both. The main difference is that invoice has the "type" field set to "IN" and a credit memo has the "type" field set to "CM". So the actual "invoice number" is the same for both kinds of records. I hope my request makes sense, if not let me know and I will try to explain what does not make sense.  Thanks in advance.  Bill

    Jason,
        You've been very helpful, but I guess I'm just not explaining myself that well. The Credit Memo's throw things off because they do not contain a "Paid Date" value. That field in the record is blank. Since it is blank the report query ignores them. Therefore when the report query returns all records that have a "Paid date" range of "x to y" they are never returned. This is a problem whenever a credit memo exists for an invoice because the "invoice total" never changes. So when a customer pays on their account for a particular invoice, they only pay what is due which is the "invoice total" minus any "credit" from the "Credit Memo". So when my A/R person receives payment they are showing the invoice paid in full because MAS automatically includes all invoices and credit memo's. My report does not because there is no data in the "Paid Date" field of the record for Credit Memos.
    I've been doing alot research in trying to resolve this "exception" to my report. I think I may be on to something, but my knowledge of arrays is extremely limited. My resolution involves populating an array with the "invoice numbers" that are returned from the initial query from the supplied date range. Then using the "invoice numbers" from the array have it then populate my details section of the report with all of "invoice records" both the actual invoice record and any "credit memo" records. I can then group the records returned  based upon the "invoice number". then within that grouping I can performing my calculations to show whether or not the invoice has been paid in full. What do you think?  I've been able to populate an array with the invoice numbers based upon my date search range, but I have yet to figure out how to take that information and perform another lookup to pull in the rest of the data I need. Do you have any ideas?
    Thanks.  Bill

  • How to e-mail/not e-mail a scheduled report based on records returned

    Hi Everyone,
    Is there a way that there can be logic performed on a report that has been scheduled and ran before it gets sent via e-mail to the end users?  We have scheduled reports that often end up with 0 records returned but users still get the e-mail with the report that contains 0 records.  I would like to e-mail the reports only if the records returned is greater than 0.
    We are on v3.1 so if there is a solution for 3.1 that would be great.  If this capability exists in 4.0, that information would be very helpful as well.
    Thank you for your time.
    David Hellinger

    Apply an event on your report.
    First go to Cmc, create an event based for example on a file that should be created in certain route if the query won't return 0 rows.
    Then apply this event in your report Schedule option Event.

  • Error when viewing report Only when records returned.

    We have a strange situtation in that when we view a particular report it errors out when viewing ONLY when there are records returned. To make matters worse this report takes several parameters, and only on one parameter does this occur. That is say we have param1, param2, param3, param4. if we fill in parameters and param3 has a value of "value1" and it returns results we are fine. The same happens for our second value ("value2"), however when we make param3's value "Value2" and it returns results the report throws an error 73. The stack trace is below. Any ideas on this one? It is really throwing me since it is only for one value of the parameter that we get the error.
    2009-01-26 07:34:25,892 ERROR [JRCCommunicationAdapter] JRCAgent3 detected an exception: 73
         at com.crystaldecisions.reports.saveddata.c.aj.a(Unknown Source)
         at com.crystaldecisions.reports.saveddata.c.p.if(Unknown Source)
         at com.crystaldecisions.reports.dataengine.r.a(Unknown Source)
         at com.crystaldecisions.reports.dataengine.s.a(Unknown Source)
         at com.crystaldecisions.reports.dataengine.s.if(Unknown Source)
         at com.crystaldecisions.reports.dataengine.bk.if(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.be.if(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.be.a(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.be.h(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.be.for(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.bt.a(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.bv.a(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.bv.a(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.bf.a(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.cd.for(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.cd.for(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.b3.for(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.bt.a(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.cd.a(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.cd.a(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.cd.a(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.ca.a(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.a9.a(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.e.m.a(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.cd.for(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.cd.for(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.b3.for(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.e.m.for(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.bt.a(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.e.p.l(Unknown Source)
         at com.crystaldecisions.reports.formatter.formatter.e.p.void(Unknown Source)
         at com.businessobjects.reports.sdk.b.b.a(Unknown Source)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.request(Unknown Source)
         at com.crystaldecisions.proxy.remoteagent.x.a(Unknown Source)
         at com.crystaldecisions.proxy.remoteagent.q.a(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.dd.a(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.ReportSource.a(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.ReportSource.getLastPageNumber(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.AdvancedReportSource.getLastPageNumber(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.NonDCPAdvancedReportSource.getLastPageNumber(Unknown Source)
         at com.crystaldecisions.reports.reportengineinterface.JPEReportSource.getLastPageNumber(Unknown Source)
         at com.sacs.casi.oasis.action.reporting.ReportingAction.view(ReportingAction.java:117)
         at com.sacs.casi.oasis.action.reporting.ReportingAction.unspecified(ReportingAction.java:46)
         at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:245)
         at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
         at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
         at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
         at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
         at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1078)
         at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:295)
         at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:396)
         at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:347)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:232)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at com.sacs.casi.oasis.filter.ActionFilter.doFilter(ActionFilter.java:101)
         at com.sacs.casi.oasis.filter.ActionFilter.doFilter(ActionFilter.java:53)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at com.planetj.servlet.filter.compression.CompressingFilter.doFilter(CompressingFilter.java:222)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at com.sacs.casi.oasis.filter.SecurityFilter.doFilter(SecurityFilter.java:144)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at com.sacs.casi.oasis.filter.Log4JRequestInfoFilter.doFilter(Log4JRequestInfoFilter.java:42)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
         at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
         at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
         at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
         at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
         at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
         at java.lang.Thread.run(Unknown Source)

    That's a strange issue.
    Now that you've mentioned stored procs - does the stored proc handle params set to null?
    I've seen issues where on verify Crystal sends null param values to stored proc, and if the stored proc doesn't handle them (or return a consistent schema), errors out.
    Above in case you'd like to revisit the issue or if you encounter the issue again.
    Sincerely,
    Ted Ueda

  • Issue migrating reports with Graphical features.

    Hi guys,
    I am working on migrating reports from 10g to 11g and I have an issue with the reports which contains a Graph. They are giving the following error when I run them against the 11g report server(they are running fine against the 10g server with out any issues)
    The report terminated with error:
    REP-56048: Engine rwEng-1 crashed., job Id: 24.
    I have searched on Google, for a solution to fix them, the closest I found was Installing Oracle Graphics 6i engine in a separate Oracle Home, but this was said for 9i and 10g, you can find that in the below oracle document:
    http://www.oracle.com/technetwork/middleware/reports/graph-faq-with-style-094084.html#q101
    Does anyone know, if I can Install Oracle Graphics 6i engine in a separate Oracle Home for 11g too?, to make them work at least, if not modifying the existing ones?
    Thanks,
    Sona.

    Hi Sona,
    unfortunately installing Graphics 6i in a separate OH for 11g wont work. This option was only possible until Reports 10g as a temporary option while migrating to the new BI beans graphing functionality included in 10gR2 and 11g.
    Reference
    http://www.oracle.com/technetwork/middleware/reports/graph-faq-with-style-094084.html
    Migrating Oracle Graphics 6i charts
    How do I migrate my charts from Oracle Graphics to the new graph format in Oracle9i Reports or Oracle Reports 10g?
    Oracle9i Reports Release 1 onwards, Oracle Graphics has been desupported. Oracle9i Reports and Oracle Reports 10g use BI Beans to generate graphs. Because of the underlying technology, there is no direct migration path from Oracle Graphics to the BI Bean graphing functionality. As such, the user will need to rewrite all of their graphs using the new Graph Wizard within the Reports Builder.
    Top of Page
    Can I still run my existing Oracle Reports Developer 6i reports containing Oracle Graphics charts in Oracle Reports?
    As noted in the Oracle Reports Statement of Direction, Oracle Graphics is no longer shipped with Oracle Reports. However, as part of the migration path, you can still run Oracle Graphics charts in Oracle Reports if you install the Oracle Graphics 6i engine in a separate Oracle Home. You should only maintain Oracle Graphics 6i as a temporary measure while you redesign your charts using the new Graph Wizard. For further details on how to configure Oracle to use Oracle Graphics 6i, please see the Graphics Migration section in the Oracle9i Application Server Migration from Oracle9iAS Release 1 (1.0.2.2.x) to Release 2 (9.0.2) manual.
    Top of Page
    Can I modify or add Oracle Graphics 6i charts to my reports with Oracle9i Reports or Oracle Reports 10g?
    No. You must have a separate installation of Oracle Graphics 6i Builder in order to modify your existing Oracle Graphics 6i charts since Oracle Graphics is not shipped with Oracle Reports. We strongly recommend that you migrate your charts to the new standard in Oracle Reports.
    Thanks, RZ

  • Aggregation issue for report with bw structure

    Hi,
    I am facing aggregation issue while grouping reports in webi.
    We have a BW query with 16 values, which we bring to bw as structure. Out of 16, 8 are percentage values (agg. type should be average).
    If we bring the data at site level, data is comming properly. But if we use same query and try sum/grouping( on region level), then percentage is getting added.
    Since it's a dashboard report with lots of filters, we cannot go for seperate query at each level(site, region, zone).
    How we can resolve this.. please give me suggestion.
    Regards
    Baby

    Hi,
    Since we were using structure, it was not possible to produce the required result in BO.
    We change structure to keyfigures and bring all of them in to BO. All the column formulas are now in BO side.
    Now it is working fine.
    Regards
    Baby
    Edited by: Baby on May 10, 2010 11:39 AM

  • Method to not produce report if no records returned?

    We have reports automatically emailing clients on a daily basis. If a report query does not return any records, can I tell BOXI not to email the report?
    Clients want a report of any new incidents reported daily. If no new incidents occur on a given day, I would ideally not like the report to run, or at least, to not send an email.
    How can I do this?
    Thanks in advance.
    Maria

    Hi Maria,
    You would create the events prior to the report generation i.e. the report is generated only if the event is triggered.
    Use SSIS, DTS or xp_cmdshell to create the necessary trigger files.
    Basically what you want to do is determine criteria of what must trigger your report i.e. count(*) > 0 then if the criteria returns true, create a file on the file system, if it returns false then do not create the file.
    The file needs to be created on the file system.
    On the CMS create a new file based event
    Point the event to the UNC path where the file will be created.
    Ensure the SIA has access rights to the UNC path.
    Have a read through the admin guide - Page 883
    http://help.sap.com/businessobject/product_guides/boexir31/en/xi3-1_bip_admin_en.pdf
    There will of course be a performance overhead for the above as you will effectively be running your procedure twice - once to determine the number of rows followed by a second time to run the report.

  • Reports with 7000 records taking 10mts

    Hi
    I have designed a IR report which can retrieve between 10 records to 500,000 records. But for retrieving 7000 records it tooks 10 minutes.
    Could anyone tell me how to improve the performance.

    MUnky
    thanks for your response. I have recreated a interactive report.
    I enabled 10046 trace and i run the report with 15 row at 1st time after i changed the interactive rows per page 500 records and navigated it twice. My trace file shows 15 seconds overall but the apex debug session took 45 seconds. I have create some partition on that table. Table has 4.8 million rows and size is 1.5gig.
    The following are the trace output
    select
    ROWID as apxws_row_pk,
    "APXSEQ",
    "JOB_SEQ_ID",
    "ISSUE_ID",
    "TARGET_TABLE_NAME",
    "PROGRAM_NAME",
    "ISSUE_COL_NAME",
    "ISSUE_COL_VALUE",
    "ISSUE_TYPE",
    "KEY_COL_NAME_1",
    "KEY_COL_VALUE_1",
    "KEY_COL_NAME_2",
    "KEY_COL_VALUE_2",
    "KEY_COL_NAME_3",
    "KEY_COL_VALUE_3",
    "KEY_COL_NAME_4",
    "KEY_COL_VALUE_4",
    "KEY_COL_NAME_5",
    "KEY_COL_VALUE_5",
    "KEY_COL_NAME_6",
    "KEY_COL_VALUE_6",
    "KEY_COL_NAME_7",
    "KEY_COL_VALUE_7",
    "KEY_COL_NAME_8",
    "KEY_COL_VALUE_8",
    "KEY_COL_NAME_9",
    "KEY_COL_VALUE_9",
    "KEY_COL_NAME_10",
    "KEY_COL_VALUE_10",
    "KEY_COL_NAME_11",
    "KEY_COL_VALUE_11",
    "KEY_COL_NAME_12",
    "KEY_COL_VALUE_12",
    "KEY_COL_NAME_13",
    "KEY_COL_VALUE_13",
    "KEY_COL_NAME_14",
    "KEY_COL_VALUE_14",
    "KEY_COL_NAME_15",
    "KEY_COL_VALUE_15",
    "ORA_ERROR_MESSAGE",
    "RUN_DATE",
    "BLOCK_NAME",
    count(*) over () as apxws_row_cnt
    from (
    select * from (
    select * from obe.APX_EXCpt_bkp1 where apxseq=3 and issue_id='102.21'
    ) r
    ) r where rownum <= to_number(:APXWS_MAX_ROW_CNT)
    order by ROWID
    call count cpu elapsed disk query current rows
    Parse 3 0.00 0.00 0 0 0 0
    Execute 3 0.00 0.00 0 0 0 0
    Fetch 1806 0.15 0.14 0 1473 0 1806
    total 1812 0.15 0.14 0 1473 0 1806
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 478 (OBE) (recursive depth: 1)
    Rows Row Source Operation
    202 WINDOW SORT (cr=491 pr=0 pw=0 time=42548 us)
    7039 COUNT STOPKEY (cr=491 pr=0 pw=0 time=91640 us)
    7039 PARTITION RANGE SINGLE PARTITION: 3 3 (cr=491 pr=0 pw=0 time=77555 us)
    7039 PARTITION HASH SINGLE PARTITION: 2 2 (cr=491 pr=0 pw=0 time=63451 us)
    7039 TABLE ACCESS BY LOCAL INDEX ROWID APX_EXCPT_BKP1 PARTITION: 18 18 (cr=491 pr=0 pw=0 time=49367 us)
    7039 INDEX RANGE SCAN APX_EXCPT_BKP1_IDX1 PARTITION: 18 18 (cr=21 pr=0 pw=0 time=7174 us)(object id 1059619)
    Rows Execution Plan
    0 SELECT STATEMENT MODE: ALL_ROWS
    202 WINDOW (SORT)
    7039 COUNT (STOPKEY)
    7039 PARTITION RANGE (SINGLE) PARTITION: START=3 STOP=3
    7039 PARTITION HASH (SINGLE) PARTITION: START=2 STOP=2
    7039 TABLE ACCESS MODE: ANALYZED (BY LOCAL INDEX ROWID) OF
    'APX_EXCPT_BKP1' (TABLE) PARTITION: START=18 STOP=18
    7039 INDEX MODE: ANALYZED (RANGE SCAN) OF
    'APX_EXCPT_BKP1_IDX1' (INDEX) PARTITION: START=18 STOP=18
    Trace file shows fetch count is equal to rows count. is there any option in apex to do bulk fetch?
    And munky what is the tuned response time to retrieve 1000 records per page and navigation to next page time

  • Report with 65K records

    Hello,
    Report outputs 65K records if no selection is made on the variable screen. System generates time out.
    I will reduce the number of records by only one plant selection in thevariable screen.
    Are there any limitations to the numbers of records in the reports.
    Thanks

    Hi,
    If you are using BW3.5 system , the report will open in analyzer that is excel sheet which can hold only 65,535 records.
    In BI7.0 we can hold more than 1 million.
    If system is throwing error like timed out, it may comes under performance tuning issues.
    We can do it by 1) creating aggregates
                              2) partitioning cubes....etc..
    Hope it helps u,
    Thanks,
    Sai Chand.S

  • How to create and process Iinteractive report with selected records in 4.1

    Hi,
    I want to have an Interactive report that will have in front of each row a checkbox that can be selected for batch processing. Is there a way to do so?
    If there is please include some method to process those records i.e. for each selected record create a new record on a different table and update the record itself as processed.
    thanks
    Edited by: yannisr on Jul 13, 2012 5:58 AM

    For this you need to consult APEX documentation for two things
    Create a checkboxes using APEX_ITEM API
    How to reference those checkboxes within an On Submit Process

  • Query issue---Aging report with Net due

    Hello Gurus,
    I am just stuck very badly with a report requirement. The reports has billing doc and item with amount aggregated under different age buckets.
    Ex:
    Bill doc-0000000001;item-10; aged bucket 10-20days-- -100
    Bill doc-0000000001;item-20; aged bucket 30-40days-- 1000
    remember that these are two different rows and columns. The user wants to see the net amount due for 30-40 days i.e 1000-100=900 not 1000.
    How do I achieve this?
    Thanks
    Simmi

    Technically the report is correct, the amount of due 10-20 days is -100 while the amount due for 30-40 days is 1000 where the sum is 900. The only problem is the aging dates and line item number if you get ride of them then you will get 900 which is correct but if you drill down by date the report is correct. There is no way to achieve what they want if you have to display the line item number. Tell them this is correct.
    thanks.
    Wond

  • Report with spreadsheet as desformat opens very slow

    Hi All,
    Greetings.
    We have an xls file which was generated by report runtime.
    This xls was created with option desformat=spreadsheet in report
    runtime. The problem is it takes considerably long time to open.
    More than 5 minutes for a file with 6750 records.
    -------scenario
    create a rdf report file, say test.rdf.
    run test.rdf using SRW.run_report(myPlist)
    with option for desformat=spreadsheet.
    and DESNAME=abc.xls
    the report runs fine and creates an xls file with 6700 records.
    open excel application.
    open abc.xls
    opening abc.xls is painfully slow.
    any ideas/suggestion?
    thanks in advnace,
    -Jafer

    hi all,'
    Sadly oracle suggested that,
    spreadsheet format is not to be used for running reports with large records,
    its meant to be used only for small reports.
    The reason is report server adds tags to xls report generated using spreadsheet format.
    There is a workaround for this issue, if opened in excel application and saved as
    excel , the new file looses all the tags but keeps the format.
    so it reduces to 1/5th of acutal size and opens quick.
    cheers,
    -J

  • How to find lasts query and his results(number of record returned)

    Hi all,
    sorry for my english.
    My scenario: i have 3 select below....
    first select: select 1 from dual;
    second select select 1 from dualXXXX; (this table/view/synonym, etc,etc NOT exists in DB)
    third select select 1 from dual where 0=1;
    my question is:
    how and where i can find (in system table for example) the latest query and the right or wrong excecution?
    I.E. for the first query the results is OK (with 1 record returned)
    for the second query the results is KO (the table not exists)
    for third query the results is OK( but whit 0 record returned).
    There is this information stored somewhere?
    Thanks a lot
    Attilio

    Properly executed queries details will be found in below dynamic views :
    V$SQL,V$SQLAREA
    SELECT
         sql_text,
         ROWS_PROCESSED,
         LAST_ACTIVE_TIME
    FROM
         V$SQLAREA
    WHERE
         regexp_like(SQL_TEXT,'1 from dual');Not aware about the queries which did not get executed properly.

  • Cant Use Page Controls to Cycle Through Records in Report with Table

    Hi
    I have built a tabular report in answers that returns a 1000 rows. I have set the number of rows to be displayed to 100. However, when I run the report i cant use the page controls to cycle to the next 100 records.
    When I edit the table with the compound layout view I can cycle through the records fine, but when I save it and run normally I cant use the page controls.
    Page controls works on other reports in the subject area but these are pivot tables not normal tables.
    Can someone help diagnose the issue?
    I'm using OBIEE 10g btw
    Thanks
    James

    Hi,
    If you have set DefaultRowsDisplayed as 100 in instaceconfig.xml file, then this would effect only the table view, not Pivot table. By default, Pivot would display all the records without pagination.
    Thanks

  • SSRS report with tabular model – MDX query CoalesceEmpty function does not return the provided string value

    Hello everyone,
    I created following calculated member in MDX query. I am using it in one of the report parameter in dataset (single select dropdown list as report parameter).
    WITH MEMBER [Measures].[ParameterCaption] AS
    CoalesceEmpty([Customer].[National Account Code].CURRENTMEMBER.MEMBER_CAPTION,'None')
    I would like to display 'None' text at the top of the dropdown list values. So that when user selects 'None' then this parameter will not considered in MDX query else the selected National Account Code will be considered to filter report data. But,
    the above return blank/empty value for  [Customer].[National Account Code].&  member though I specified 'None' as text in CoalesceEmpty function. Any advice would be appreciated.
    Thanks, Ankit Shah
    Inkey Solutions, India.
    Microsoft Certified Business Management Solutions Professionals
    http://www.inkeysolutions.com/MicrosoftDynamicsCRM.html

    Hi Ankit,
    It seems that you issue had been solved in your another thread.
    http://social.msdn.microsoft.com/Forums/sqlserver/en-US/5a5becac-226f-428a-95b0-aaaa22733818/ssrs-report-with-tabular-model-create-a-dropdown-report-parameter-with-none-option-as-the-top?forum=sqlanalysisservices#0e51bf8c-a66c-4df5-a244-0147728fdfdb
    iif([Customer].[National Account Code].CURRENTMEMBER.MEMBER_CAPTION="","None",[Customer].[National
    Account Code].CURRENTMEMBER.MEMBER_CAPTION)
    I marked this reply as answer, it will benefit to other members who have the similar issue.
    Regards,
    Charlie Liao
    TechNet Community Support

Maybe you are looking for