Performance does matter…

Estava a persistir numa base de dados em SQL Compact 3.5 num equipamento Windows Mobile 2003SE cerca de 250 registos (40 colunas) numa tabela e 5700 registos noutra tabela (4 colunas), obtidos de um webservice. A operação estava a tomar cerca de 70 segundos para a 1ª tabela e 60 segundos para a 2ª, o que me pareceu tempo a mais, ainda que estivesse a utilizar comandos preparados, com os tipos de dados e respectivos comprimentos definidos para cada parâmetro.

Fui fazendo umas alterações, removendo índices, ‘foreign keys’, mas as poucas melhorias não me convenciam, até que me lembrei de utilizar o SqlCeResultSet, sobre um comando do tipo TableDirect, e passei a inserir a mesma informação em… 10 SEGUNDOS, repartidos por um segundo e meio para os 250 registos e 8 segundos e meio para os 5700!!!

Fica a dica!!!