=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/aggregation/AggregatedDataValueService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/aggregation/AggregatedDataValueService.java 2011-01-19 11:57:37 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/aggregation/AggregatedDataValueService.java 2011-01-21 11:06:16 +0000 @@ -135,7 +135,24 @@ */ public int countDataValuesAtLevel( OrganisationUnit orgunit, OrganisationUnitLevel level, Collection periods ); - + /** + * Creates indexes on the aggregateddatavalue and aggregatedindicatorvalue + * tables. + * + * @param dataElement indicates whether to create an index on aggregateddatavalue. + * @param indicator indicates whether to create an index on aggregatedindicatorvalue. + */ + void createIndex( boolean dataElement, boolean indicator ); + + /** + * Drops the indexes on the aggregateddatavalue and aggregatedindicatorvalue + * tables. + * + * @param dataElement indicates whether to drop the index on aggregateddatavalue. + * @param indicator indicates whether to drop the index on aggregatedindicatorvalue. + */ + void dropIndex( boolean dataElement, boolean indicator ); + // ---------------------------------------------------------------------- // AggregatedDataMapValue // ---------------------------------------------------------------------- === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/aggregation/AggregatedDataValueStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/aggregation/AggregatedDataValueStore.java 2011-01-19 11:57:37 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/aggregation/AggregatedDataValueStore.java 2011-01-21 11:06:16 +0000 @@ -110,6 +110,24 @@ */ public int countDataValuesAtLevel( OrganisationUnit orgunit, OrganisationUnitLevel level, Collection periods ); + /** + * Creates indexes on the aggregateddatavalue and aggregatedindicatorvalue + * tables. + * + * @param dataElement indicates whether to create an index on aggregateddatavalue. + * @param indicator indicates whether to create an index on aggregatedindicatorvalue. + */ + void createIndex( boolean dataElement, boolean indicator ); + + /** + * Drops the indexes on the aggregateddatavalue and aggregatedindicatorvalue + * tables. + * + * @param dataElement indicates whether to drop the index on aggregateddatavalue. + * @param indicator indicates whether to drop the index on aggregatedindicatorvalue. + */ + void dropIndex( boolean dataElement, boolean indicator ); + // ---------------------------------------------------------------------- // AggregatedDataMapValue // ---------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/aggregation/DefaultAggregatedDataValueService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/aggregation/DefaultAggregatedDataValueService.java 2011-01-21 10:40:31 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/aggregation/DefaultAggregatedDataValueService.java 2011-01-21 11:06:16 +0000 @@ -118,7 +118,17 @@ { return aggregatedDataValueStore.countDataValuesAtLevel( orgunit, level, periods ); } + + public void createIndex( boolean dataElement, boolean indicator ) + { + aggregatedDataValueStore.createIndex( dataElement, indicator ); + } + public void dropIndex( boolean dataElement, boolean indicator ) + { + aggregatedDataValueStore.dropIndex( dataElement, indicator ); + } + // ------------------------------------------------------------------------- // AggregatedDataMapValue // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/aggregation/jdbc/JdbcAggregatedDataValueStore.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/aggregation/jdbc/JdbcAggregatedDataValueStore.java 2011-01-21 10:40:31 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/aggregation/jdbc/JdbcAggregatedDataValueStore.java 2011-01-21 11:06:16 +0000 @@ -217,12 +217,10 @@ } finally { - // don't close holder or we lose resultset - iterator must close - // holder.close(); + // Don't close holder or we lose resultset - iterator must close } } - @Override public int countDataValuesAtLevel( OrganisationUnit rootOrgunit, OrganisationUnitLevel level, Collection periods ) { @@ -276,6 +274,36 @@ { return statementManager.getHolder().executeUpdate( "DELETE FROM aggregateddatavalue" ); } + + public void createIndex( boolean dataElement, boolean indicator ) + { + if ( dataElement ) + { + final String sql = "CREATE INDEX aggregateddatavalue_index ON aggregateddatavalue (dataelementid, categoryoptioncomboid, periodid, organisationunitid)"; + statementManager.getHolder().executeUpdate( sql ); + } + + if ( indicator ) + { + final String sql = "CREATE INDEX aggregatedindicatorvalue_index ON aggregatedindicatorvalue (indicatorid, periodid, organisationunitid)"; + statementManager.getHolder().executeUpdate( sql ); + } + } + + public void dropIndex( boolean dataElement, boolean indicator ) + { + if ( dataElement ) + { + final String sql = "DROP INDEX aggregateddatavalue_index"; + statementManager.getHolder().executeUpdate( sql ); + } + + if ( indicator ) + { + final String sql = "DROP INDEX aggregatedindicatorvalue_index"; + statementManager.getHolder().executeUpdate( sql ); + } + } // ------------------------------------------------------------------------- // AggregatedDataMapValue === modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/generateReport.js' --- dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/generateReport.js 2011-01-17 16:17:06 +0000 +++ dhis-2/dhis-web/dhis-web-reporting/src/main/webapp/dhis-web-reporting/javascript/generateReport.js 2011-01-21 11:06:16 +0000 @@ -108,13 +108,13 @@ { setWaitMessage( i18n_please_wait ); - waitAndGetReportStatus( 1500 ); + waitAndGetReportStatus( 1000 ); } else { setWaitMessage( i18n_please_wait + " - " + statusMessage ); - waitAndGetReportStatus( 1500 ); + waitAndGetReportStatus( 1000 ); } }