Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
recordset loaded multiple time?
osuwariboy
Hi everyone,
I'm curious. I happen to have a report with three datacubes which is hopelessly slow when the dataset doesn't return any value (we're talking about a jump from 15 seconds when there's actual data to 3 minutes when there's nothing to display, I clocked it). The stored procedure takes a constant time of 15 seconds to execute, no matter the case, so the problem obviously doesn't lie there.
In frustration, I started poking around and eventually put a counter on the "BeforeOpen" event of the recordset... only to discover it's opened three times. So does this mean the query in the recordset is executed three times!? If I'm right, that's whoefully inefficient, wouldn't you think?
So in any case, does anyone have any idea why everything is so slow and also if the fact that the dataset is opened three times mean the data is actually fetched three times too?
Thanks in advance,
Osu
Find more posts tagged with
Comments
mwilliams
So, you're saying that when there is no data returned, your report takes 3 minutes, and when data is returned, it takes 15 seconds? What is your BIRT version?
osuwariboy
My BIRT version would be the one given with Eclipse Indigo. Here's what's written in the XML header of the report identifying the version which I believe is the latest or very close to it:<br />
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.23" id="1">
<property name="createdBy">Eclipse BIRT Designer Version 3.7.2.v20120213 Build <3.7.2.v20120214-1408></property>
</pre>
<br />
So yeah, when the dataset returns nothing the report takes forever to run. It's almost as if the three datacubes can't believe in the fact that there's no data and say "That can't be possible, we need confirmation" and then run the query again and again and again until finally they give up after an untold amount of time. Is it because I call a stored procedure? Who knows, I have no explanation for such a strange behavior.<br />
<br />
I've also got confirmation from one of my colleague that her reports also take longer to generate when no data are returned, though the difference is not nearly as dramatic as me (and just to be clear, we all use stored procedures for our reports). I guess I must've lucked out or something he he he.<br />
<br />
So there you have it, a stored procedure querying a table with 10 million rows and 300 fields outputing its results in a constant 15 seconds... and a report that seems hellbent on making my life miserable when there's no data to process.<br />
<br />
I did manage to circumvent the problem by adding a condition to my stored procedure that outputs an empty line instead of nothing, but you have to admit this problem is kind of strange.<br />
<br />
If anyone can get to the bottom of this I'd be interested in knowing what was causing it.<br />
<br />
Thanks in advance,<br />
<br />
Osu
mwilliams
If you write a simple query, instead of a stored procedure, do you get the same result? Either way, please log a bug for this in the eclipse.org/birt bugzilla. If you could post the bug info in this thread, that'd be great too! Thanks!