Megvizsgáltam a kérdést, hogy melyik a hatékonyabb megoldás egy rekord mezőinek lekérésére: az r.getObject("fieldName") vagy az r.getObject(fieldIndex), ahol az r változó egy ResultSet objektumra mutat. A kísérleti eredmények igazolták azt a gyanúmat, hogy gyorsabb index alapján lekérni a mező értékét. A kísérletekben 3500 rekordot olvastunk ki a ResultSet objektumból.

Kísérlet
sorszáma
r.getObject("fieldName")
(ms)
r.getObject(fieldIndex)
(ms)
1 109 85
2 61 33
3 50 34
4 36 35
5 51 20
6 23 36
7 34 34
8 28 30
9 25 27
10 29 26
Átlag 44,6 36,0

 

Az eredmény szerint a második módszer 19,3 %-al gyorsabb. Ugyanakkor persze kevésbé olvasható kódot eredményez. A két kódrészlet a következő képpen néz ki:

try (ResultSet r = s1.executeQuery("SELECT * FROM \"TelepulesTable\"")) {
                        while (r.next()) {
                            pse2.setIndex(1);
                            pse2.setString(r.getString("telepulesNev"), true);
                            pse2.setInt((Integer) r.getObject("iranyitoSzam"));
                        }
                    }

 

try (ResultSet r = s1.executeQuery("SELECT \"telepulesNev\",\"iranyitoSzam\" FROM \"TelepulesTable\"")) {
                        while (r.next()) {
                            pse2.setIndex(1);
                            pse2.setString(r.getString(1), true);
                            pse2.setInt((Integer) r.getObject(2));
                        }
                    }


Az eredmények alapján kijelenthető hogy akkor érdemes az indexes módszert alkalmazni, ha nagyon sok rekorddal dolgozunk, egyébként nem olyan jelentős az eltérés.

Kategória: Derby

Kérlek, támogasd munkámat!

Java csomagok

Termékek

Munkanyilvántartás

Számlázás

Készletkezelés
Ügyfélnyilvántartás
Gumiabroncs-tárolás

Hamarosan érkezik az Ubuntu következő kiadása

Látogatók

88277
Ma51
Tegnap96
Ezen a héten388
Ebben a hónapban1307
Összesen88277
Statistik created: 2017-11-17T18:59:48+00:00
Bejelentkezett felhasználók 0
Regisztrált felhasználók 1
Ma regisztráltak 0