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.setFilters( src.getFilters());
		if( src.getSorts( ).size( ) == 0)
		{
			List sorts = new ArrayList();
			SortDefinition sd = new SortDefinition();
			sd.setExpression( expr );
			sd.setSortDirection( src.getSortDirection( ) != ISortDefinition.SORT_DESC? 
								 ISortDefinition.SORT_ASC:ISortDefinition.SORT_DESC );
			sorts.add( sd );
			dest.setSorts( sorts  );
		}else
		{
			dest.setSorts( src.getSorts() );
		}
		dest.setIsComplexExpression( isComplexExpression );
		return dest;
	}
	
	/**
	 * Convert IGroupDefn to IQuery.GroupSpec
	 * 
	 * @param cx
	 * @param src