Tengo un problema de rendimiento al llamar a getInt dentro de un ResultSetExtractor. GetInt se llama 20000 veces. Una llamada cuesta 0.15 ms, el costo total es de 24 segundos, mientras se ejecuta dentro del generador de perfiles. La ejecución de las sentencias de SQL lleva alrededor de 8 segundos (acceso a través de la clave principal). Uso el controlador mysql versión 5.1.13, servidor mysql 5.1.44 y spring-jdbc-3.1.1 ¿Tiene una idea para mejorar el rendimiento?Problema de rendimiento con getInt dentro de 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");
Mi esquema es el siguiente
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;
Editar: Dentro de la méthode getInt getIntWithOverflowCheck se llama que parece ser caro. ¿Es posible cambiar estos controles?
Statement.setFetchSize() funcionó bien. Muchas gracias. –