Ivan Nemeth created EMPIREDB-213:
------------------------------------

             Summary: DBReader performance improvement with field caching
                 Key: EMPIREDB-213
                 URL: https://issues.apache.org/jira/browse/EMPIREDB-213
             Project: Empire-DB
          Issue Type: Improvement
            Reporter: Ivan Nemeth


DBReader can be much faster for resultsets with many columns if the 
getFieldIndex(ColumnExpr c) method uses some kind of caching. The following 
code is 10 times faster for a resultset with 20000 rows and 70 columns.

public class MyDBReader extends DBReader {

        private static final long serialVersionUID = 1L;
        
        private Map<ColumnExpr, Integer> fieldIndices = new HashMap<ColumnExpr, 
Integer>();

        @Override
        public int getFieldIndex(ColumnExpr column) {
                Integer i = fieldIndices.get(column);
                if (i == null){
                        i = super.getFieldIndex(column);
                        fieldIndices.put(column, i);
                }
                return i;
        }
        
}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to