Focal Point
speed up the report?

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/3787017026

May 30, 2012, 09:54 AM
Shawna
speed up the report?
We have a report which takes absolutely forever to run, commonly it will time out.
When I query the information in oracle though the data comes back very fast. I can only assume there is something going on with WF to hinder its performance.

Any ideas of where I should even start looking?
I've checked the forum already, several pieces of documentation on the tech doc library and I'm running out of options.

Thanks for taking a look at this.
Appreciated,
Shawna


WebFOCUS 7.6.7
WIN XP
Excel, PDF, HTML
May 30, 2012, 10:37 AM
njsden
Are you querying the info in Oracle using a query statement you wrote yourself or the one created by WebFOCUS (iWay adapter)?



Prod/Dev: WF Server 8008/Win 2008 - WF Client 8008/Win 2008 - Dev. Studio: 8008/Windows 7 - DBMS: Oracle 11g Rel 2
Test: Dev. Studio 8008 /Windows 7 (Local) Output:HTML, EXL2K.
May 30, 2012, 10:52 AM
Shawna
one that I wrote myself which pulls all rows quickly, opposed to the report which should be pulling back 370K rows (far less rows) for the users.
Thank you.


WebFOCUS 7.6.7
WIN XP
Excel, PDF, HTML
May 30, 2012, 11:27 AM
njsden
Perhaps you should try enabling tracing in WebFOCUS, capturing the SQL statement and run that instead in your SQL tool. You'll take a look at the execution plan (compared to the one you wrote yourself) and see where the differences are.

Many times the slowdown you notice lie on the fetching of the whole set of rows. If you ask me, 370,000+ rows seems like a significant chunk of data to read over from Oracle to WebFOCUS to then be styled. It may not even be the reporting engine but your browser choking when trying to display an HTML table with that many number of rows.

Many things to consider but again, I would start at evaluating the SQL created by the iWay adapter in the first place and take it from there. You'll want to see that all filters are being passed to the database to handle, as opposed to WebFOCUS trying to read everything and filtering after on the reporting server side, which I've seen happening very frequently in poorly-written WebFOCUS code.



Prod/Dev: WF Server 8008/Win 2008 - WF Client 8008/Win 2008 - Dev. Studio: 8008/Windows 7 - DBMS: Oracle 11g Rel 2
Test: Dev. Studio 8008 /Windows 7 (Local) Output:HTML, EXL2K.
May 30, 2012, 05:53 PM
Waz
quote:
When I query the information in oracle though the data comes back very fast


Was this very fast retrieval for all the records ?

I have been told by some people that the query runs quicker in oracle (via Toad in my case), but the time frame they see if from the start of the execution to the first row returned.

Are you able to post your original SQL and the report ?


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

May 30, 2012, 05:54 PM
Waz
FYI,

There is a Relational Efficiencies course available at IB.


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

May 31, 2012, 09:09 AM
Shawna
In the report we are pulling all the data through and then using many WHERE clauses, it's my understanding this could be impacting the performance greatly.

I'll try to figure out iWay enough to check the adapter sql today.

We also use Toad and choosing almost the same filtered criteria that's problematic brings back all rows quicker than the report takes to run.

We also made sure all the JOINS are indexed properly.
Hmmmm...

Thanks for the assistance, you both are bringing in some really good suggestions.

Shawna


WebFOCUS 7.6.7
WIN XP
Excel, PDF, HTML
May 31, 2012, 11:57 AM
Danny-SRL
Shawna,

Are you coding your request using Developer Studio?
If so, clicking "View" in the drop-down list you have "Show generated SQL". Comparing it with what you write, this could give you a hint.


Daniel
In Focus since 1982
wf 8.202M/Win10/IIS/SSA - WrapApp Front End for WF

June 01, 2012, 07:36 AM
Alex
Are you using any DEFINES? Use of some functions in DEFINES could turn off SQL OPTIMIZATION slowing down your data retrieval.


WF 7.7.04, WF 8.0.7, Win7, Win8, Linux, UNIX, Excel, PDF
June 04, 2012, 02:00 AM
Dave
Shawna,

some tips to check.

Put and -EXIT directly after the query. Just to check whether the query takes long or whatever you do with it afterwards.

We find that when HOLDing the data in another format. Native / FOCUS / XFOCUS.

G'luck


_____________________
WF: 8.0.0.9 > going 8.2.0.5
June 04, 2012, 11:35 AM
Shawna
Thanks for all the assistance, I was unfortunately not super successful.

Daniel - I am in the dev studio but under 'View' I do not see this as an option.

Alex - I'll double check on the DEFINES, I don't think we are though.

Dave - That sounds like great advice, but I still can't see where/how webFocus writes its query. I was not successful getting around in iWay as I had hoped last week.

Thanks everyone.
Shawna


WebFOCUS 7.6.7
WIN XP
Excel, PDF, HTML
June 04, 2012, 12:27 PM
Danny-SRL
Strange that you do not see it...
You are running against an SQL database, right?
Well, if it is not there, the next thing you can do is entre TRACE commands in your FEX. Then with "View Source", you can see how WF generates SQL:
  
SET TRACEOFF = ALL
SET TRACEON = SQLAGGR//CLIENT
SET TRACEON = STMTRACE//CLIENT
SET TRACEON = STMTRACE/2/CLIENT
SET TRACEUSER = ON



Daniel
In Focus since 1982
wf 8.202M/Win10/IIS/SSA - WrapApp Front End for WF

June 04, 2012, 12:33 PM
M Meagher
Wasn't the view option a new feature in 7.7?
June 04, 2012, 03:48 PM
John_Edwards
The other thing you might want to do is have a look at your agents console and see where the work is being done. Generally at http://servername:8121/bcstart.html See how many rows it's pulling from Oracle. If it's pulling more than you expect then it's almost assuredly applying some of your where clauses after the SQL call on the EDASERVER and that will be slower for a number of reasons.

If you want to get really tricky, get the agent number that the request is running under (from the agent console I mentioned above). Log on to your server as a user and go to that agent's temporary directory. Generally installed in \ibi\srv77\wfs\edatemp\tsxxxxxx where the Xs are the agent's number. Since this thing takes all day to run you have time to go to that directory and refresh it repeatedly to see if temporary files are being created. If Oracle is doing all the work you should see nothing but stderr.log and stdout.log in that folder. If EDA is bringing material back in pieces and reassembling them itself, you'll see other files appear (and disappear) as the process proceeds. That's an indication that something you've coded has pushed the Go-Slow button.

I had an I-Way process with a DEFINE field on one of its sources. I didn't even use the DEFINE field -- it was just along for the ride. For some reason it switched off the pass-through option and I had 11 temporary FOCUS files being created for a painfully simple denormalization routine. Big ones too -- 40GB worth and the process took an hour to run. I moved that DEFINE to the target table and it ran in 60 seconds with no temporary files.

J.