As of December 1, 2020, Focal Point is retired and repurposed as a reference repository. We value the wealth of knowledge that's been shared here over the years. You'll continue to have access to this treasure trove of knowledge, for search purposes only.
Join the TIBCO Community TIBCO Community is a collaborative space for users to share knowledge and support one another in making the best use of TIBCO products and services. There are several TIBCO WebFOCUS resources in the community.
From the Home page, select Predict: WebFOCUS to view articles, questions, and trending articles.
Select Products from the top navigation bar, scroll, and then select the TIBCO WebFOCUS product page to view product overview, articles, and discussions.
Request access to the private WebFOCUS User Group (login required) to network with fellow members.
Former myibi community members should have received an email on 8/3/22 to activate their user accounts to join the community. Check your Spam folder for the email. Please get in touch with us at community@tibco.com for further assistance. Reference the community FAQ to learn more about the community.
Hello frens, We have a PDF report which reads from a dynamic table(records keep changing) which has records already sorted on 14 columns. The fex sorts again on 14 fields to do a page break when any of those 14 fields changes. For 11 thousand records it takes 9 mins of time. To improve performance we have modified the table to have an extra column whose value changes when any of those 14 columns value changes. This brought down the processing time significantly by 4 mins. But still 5 mins of processing time for 11 thousand records is not acceptable for us. The number of records can vary and on an average we may need to report from 30 thousand records. We have tried to use the external sorting but as we need to use style sheets in our report, we could not go with this option. Any suggestions are greatly appreciated.
as Fortune says, run the report without pdf or html output, just holding the report files as ON TABLE HOLD. see how long that takes. if it takes a very short time, then you know your time is being consumed by your network in delivering the output to the enduser's pc. What is the form ofyour orginating database? are there indexes on all the 14 (now 15)fields you sort by? Edit your profile please to say where you are and who you work for.
In Focus since 1979///7706m/5 ;wintel 2008/64;OAM security; Oracle db, ///MRE/BID
Posts: 3811 | Location: Manhattan | Registered: October 28, 2003
What type of database is it. Can you post the master file.
you say "on 14 fields to do a page break when any of those 14 fields changes." So this might create a new page for every record in the database...is that correct? 11.000 pages will take some time.....
Frank
prod: WF 7.6.10 platform Windows, databases: msSQL2000, msSQL2005, RMS, Oracle, Sybase,IE7 test: WF 7.6.10 on the same platform and databases,IE7
Posts: 2387 | Location: Amsterdam, the Netherlands | Registered: December 03, 2006
Since your records are already sorted and you are just using the BY fields for control breaks, you could try using TABLEF instead of TABLE. This would eliminate the actual sorting.
Pat WF 7.6.8, AIX, AS400, NT AS400 FOCUS, AIX FOCUS, Oracle, DB2, JDE, Lotus Notes
Posts: 755 | Location: TX | Registered: September 25, 2007
Most of the time is consumed in sorting. Reading just the records is taking approximately 60 secs and the table command that does the sorting is taking more than 3 mins.
I forgot to mention that we use DB2 database. for 11 thousand records, around 350 page report is generated as there will be around 65 records for each combination of those 14 fields and each combination takes one and half pages. But since there is a pagebreak, the next combination is started on the next page.
I will try TABLEF like PBrighWell suggested and hopefully it reduces the processing time...
60 secs to read 11K rows? That seems like an very long time. First thing I'd do is use TABLEF and SQL tracing to make sure the SQL being generated is as efficient as it can be. If you can't get efficient SQL, write your own using SQL passthru.
In my environment, just returning a large spreadsheet with 11K rows or a similar PDF can take a long time and if there are a lot of columns, it can take a very long time. I don't mean execution time, I mean delivery time.
One of the thing I do so that the user is not just sitting at his screen waiting, is use DSTRUN to run a RC job immediately and deliver the report via email. What I do is write the parameters, user id, email address, etc. to a file. Then I run the RC job using DSTRUN. This frees up user's browser. It also eliminates the possibility of the user's browser timing out.
In FOCUS since 1985. Prod WF 8.0.08 (z90/Suse Linux) DB (Oracle 11g), Self Serv, Report Caster, WebServer Intel/Linux.
Posts: 975 | Location: Oklahoma City | Registered: October 27, 2006
helpme, In DB2, you can create an index over your sort fields using the basic SQL CREATE INDEX SCHEMA.INDEXNAME ON SCHEMA.TABLENAME (FIRSTSORTFIELD ASC, SECONDSORTFIELD ASC, THIRDSORTFIELD ASC...);
"To improve performance we have modified the table to have an extra column whose value changes when any of those 14 columns value changes"
This is where you use something called an EVI (or Bitmap if you're on Oracle) for fields that are very high cardinality and used in your where clause.
CREATE ENCODED VECTOR INDEX SCHEMA.INDEXNAME ON SCHEMA.TABLENAME(FLAG_FIELD);
you're running db2, which has some other really great features that will really help you, such as materialized query tables.
Prod: Single Windows 2008 Server running Webfocus 7.7.03 Reporting server Web server IIS6/Tomcat, AS400 DB2 database.
Thanks Jason. We have an index created on the sort field. Now, we are sorting only one field. I think we can give a thought about materialized query tables...
FortuneCookie, I will not be able to post the code for some reasons.