Ich habe ein Leistungsproblem mit Aufruf von getInt in einem ResultSetExtractor. GetInt wird 20000 mal aufgerufen. Ein Anruf kostet 0,15 ms, die Gesamtkosten betragen 24 Sekunden, während er innerhalb des Profilers läuft. Die Ausführung der SQL-Anweisungen dauert ca. 8 Sekunden (Zugriff über den Primärschlüssel). Ich benutze die mysql Treiber Version 5.1.13, mysql Server 5.1.44 und spring-jdbc-3.1.1 Haben Sie eine Idee, um die Leistung zu verbessern?Leistungsproblem mit getInt in ResultSetExtractor
mut.getMutEffect()[0]=(rs.getInt("leffect_a") != 0);
mut.getMutEffect()[1]=(rs.getInt("leffect_c") != 0);
...
mut.getMutEffect()[19]=(rs.getInt("leffect_y") != 0);
mut.getMutReliability()[0]=rs.getInt("lreliability_a");
...
mut.getMutReliability()[19]=rs.getInt("lreliability_y");
Mein Programm sieht wie folgt aus
CREATE TABLE mutation (
...
leffect_a BIT NOT NULL,
lreliability_a TINYINT UNSIGNED NOT NULL,
...
leffect_y BIT NOT NULL,
lreliability_y TINYINT UNSIGNED NOT NULL,
...
) ENGINE=MyISAM;
Edit: Innerhalb getInt Méthode getIntWithOverflowCheck genannt wird, die teuer zu sein scheint. Ist es möglich, diese Kontrollen abzuwenden?
Statement.setFetchSize() hat gut funktioniert. Danke vielmals. –