--- dao/DaoAdresseService/src/dk/daoas/daoadresseservice/db/DatabaseLayer.java 2015/02/15 17:53:36 2307
+++ dao/DaoAdresseService/src/dk/daoas/daoadresseservice/db/DatabaseLayer.java 2015/02/16 09:51:24 2308
@@ -27,14 +27,26 @@
Connection conn = DBConnection.getConnection();
Statement stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
+ stmt.setFetchSize(Integer.MIN_VALUE);
ResultSet res = stmt.executeQuery(sql);
List
list = new ArrayList(2600000);//initial capacity 2.6 mio
+ Map vejnavne = new HashMap();
+
while (res.next()) {
+
+ // Cache String instanserne for vejnavne for at mindske hukommelses forbruget
+ String dbVejnavn = res.getString(2);
+ String vejnavn = vejnavne.get(dbVejnavn);
+ if ( vejnavn == null ) {
+ vejnavn = dbVejnavn;
+ vejnavne.put(vejnavn, vejnavn);
+ }
+
Address a = new Address();
a.id = res.getInt(1);
- a.vejnavn = res.getString(2);
+ a.vejnavn = vejnavn;
a.husnr = res.getInt(3);
a.husnrbogstav = res.getString(4);
a.kommunekode = res.getInt(5);
@@ -82,6 +94,8 @@
Connection conn = DBConnection.getConnection();
Statement stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
+ stmt.setFetchSize(Integer.MIN_VALUE);
+
ResultSet res = stmt.executeQuery(sql);
List list = new ArrayList( 350000); //Initial capacity 350K