optimize SQL select statement in data sets
<p>Hi there,</p>
<p> </p>
<p> i'm newbie in Maximo BIRT reporting. Would like to seek for inputs to optimize the my report performance below. Many thanks.</p>
<p> </p>
<p>Herewith attached with the report output and the rptdesign file. </p>
<p> </p>
<p> </p>
<p> </p>
<p>1. MainPMDataSet</p>
<p> </p>
<div>// Add query to sqlText variable.</div>
<div>sqlText = "select distinct pmsequence.jpnum, (select description from jobplan where "</div>
<div>+ " jobplan.jpnum = pmsequence.jpnum) as pmseq_desc,pmsequence.pmnum, pm.description as pm_desc, "</div>
<div>+ " pm.siteid, pmsequence.interval, pm.frequency, frequnit, pm.supervisor, SUBSTRING(assetnum,4,9) as pm, "</div>
<div>+ " pm.assetnum, (select description from asset where asset.assetnum = pm.assetnum) "</div>
<div>+ " as asset_desc, (select eq1 from asset where asset.assetnum = pm.assetnum) as mfr, " </div>
<div>+ " (select eq2 from asset where asset.assetnum = pm.assetnum) as model, jobplanid, "</div>
<div>+ " (select serialnum from asset where asset.assetnum = pm.assetnum) as serialnum, "</div>
<div>+ " (select criticality from asset where asset.assetnum = pm.assetnum) as criticality, "</div>
<div>+ " pm.revisionnum as pm_rev, jobplan.revisionnum as jp_rev, pm.lastcompdate, safety_con, "</div>
<div>+ " PM.LASTSTARTDATE, DATEADD(M,(pmsequence.interval*pm.frequency),PM.LASTSTARTDATE ) as nxtduedate, "</div>
<div>+ " (select frequency from pmmeter where pmmeter.pmnum = pmsequence.pmnum) as meter_freq "</div>
<div>+ " from pmsequence "</div>
<div>+ " left outer join pm on pm.pmnum = pmsequence.pmnum and pm.siteid = pmsequence.siteid "</div>
<div>+ " left outer join jobplan on jobplan.jpnum = pmsequence.jpnum "</div>
<div>+ " where " + params["where"]</div>
<div>+ " and PM.USETARGETDATE = 1 order by interval "</div>
<div> </div>
<div> </div>
<div>2. SubJobPlanDataset</div>
<div> </div>
<div>
<div>// Add query to sqlText variable.</div>
<div>sqlText = "select distinct pmsequence.jpnum, (select description from jobplan where "</div>
<div>+ " jobplan.jpnum = pmsequence.jpnum) as pmseq_desc, pmsequence.interval, pm.frequency, frequnit, pm.supervisor, "</div>
<div>+ " (select frequency from pmmeter where pmmeter.pmnum = pmsequence.pmnum) as meter_freq, pmsequence.pmnum, jobplan.revisionnum as jp_rev1 "</div>
<div>+ " from pmsequence "</div>
<div>+ " left outer join pm on pm.pmnum = pmsequence.pmnum and pm.siteid = pmsequence.siteid "</div>
<div>+ " left outer join jobplan on jobplan.jpnum = pmsequence.jpnum "</div>
<div>+ " where " + params["where"]</div>
<div>+ " and pmsequence.pmnum = '" + rows[0]["pmnum"] + "' "</div>
<div>+ " and pmsequence.jpnum = '" + rows[0]["jpnum"] + "' "</div>
<div>+ " and PM.USETARGETDATE = 1 order by interval "</div>
<div> </div>
<div> </div>
<div>3. SubJobTaskDataSet</div>
<div> </div>
<div>
<div>// Add query to sqlText variable.</div>
<div>sqlText = " select pmsequence.pmnum, pmsequence.jpnum,jobtask.jptask, jobtask.description, jobtask.jobplanid, ldtext "</div>
<div>+ " from jobtask "</div>
<div>+ " left join pmsequence on jobtask.jpnum = pmsequence.jpnum "</div>
<div>+ " left outer join longdescription on jobtask.jobtaskid = ldkey and ldownertable = 'JOBTASK' and ldownercol = 'DESCRIPTION' "</div>
<div>+ " where pmsequence.pmnum = '" + rows[0]["pmnum"] + "' "</div>
<div>+ " and jobtask.jpnum = '" + rows[0]["jpnum"] + "' "</div>
<div>+ " and jobtask.jobplanid = '" + rows[0]["jobplanid"] + "' "</div>
<div>+ " order by jobtask.jptask "</div>
</div>
</div>
<p> </p>