Bug 147101 Report generation performance is sluggish
The overall performance of report generation appears to be quite sluggish. Here are numbers that we have measured using ORACLE as a DB. We use ORACLE 10g w/ojdbc14.jar thin driver. select rownum, datetime_id, another_id, text from ( select max(datetime_id) as datetime_id, another_id, text from some_oracle_schema.sample_table where text < 'c%' group by another_id, text ) Query resulting in 8465 rows Using PL/SQL developer: ----------------------- Execution: approx 1 second Iterating through all rows via PL/SQL developer UI: 10 seconds BIRT: ----- Preview page (via dataset editor): shows all 8465 rows in 53 seconds Preview tab (in the designer): shows all 8465 rows in 79 seconds Generation of rptdocument from rptdesign using API: 55 seconds
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/impl/QueryExecutorUtil.java
IQuery.GroupSpec dest = new IQuery.GroupSpec( groupIndex, groupKey );
		dest.setName( src.getName() );
		dest.setInterval( src.getInterval());
		dest.setIntervalRange( src.getIntervalRange());
		dest.setIntervalStart( src.getIntervalStart());
		dest.setSortDirection( src.getSortDirection());
		dest.setFilters( src.getFilters());
		dest.setSorts( src.getSorts() );
		dest.setIsComplexExpression( isComplexExpression );
		return dest;
	}
	/**
	 * @param groupSpecs
	 * @param i
	 */
	static int getTempComputedColumnType( int i )
	{
		int interval = i;
		if( interval == IQuery.GroupSpec.DAY_INTERVAL 
			|| interval == IQuery.GroupSpec.HOUR_INTERVAL
			|| interval == IQuery.GroupSpec.MINUTE_INTERVAL
			|| interval == IQuery.GroupSpec.SECOND_INTERVAL
			|| interval == IQuery.GroupSpec.MONTH_INTERVAL
			|| interval == IQuery.GroupSpec.QUARTER_INTERVAL
			|| interval == IQuery.GroupSpec.YEAR_INTERVAL
			|| interval == IQuery.GroupSpec.WEEK_INTERVAL
			|| interval == IQuery.GroupSpec.NUMERIC_INTERVAL )
			interval = DataType.DOUBLE_TYPE;
		else if ( interval == IQuery.GroupSpec.STRING_PREFIX_INTERVAL )
			interval = DataType.STRING_TYPE;